String korrekt zerlegen

  • VB.NET

Es gibt 21 Antworten in diesem Thema. Der letzte Beitrag () ist von Schamash.

    String korrekt zerlegen

    Hi
    Ich habe einen String in folgender Form:

    Quellcode

    1. 0,0,10,10,50,255,17,38,75,250,150,120

    Die einzelnen Zahlen würde ich nun ganz gerne so abladen, das ich einfach wieder drauf zugreifen kann, in dem ich sage, an welcher Stelle der Wert steht (zb. will ich wissen, was für ein Wert der 6 Speicherplatz hat, also 255).
    Wie realisiere ich das?
    Mein Problem ist, das ich gleich mehrere Zeilen in der Art habe, ich weiß aber, wieviele.

    Kann mir da jemand helfen?
    Liebe Grüße
    sothere

    Quellcode

    1. Dim sZahlen As String() = ("0,0,10,10,50,255,17,38,75,250,150,120").Split(","c)
    2. 'Zahl an Pos 6 ausgeben
    3. Dim Zahl As Integer = CInt(sZahlen(5))
    4. MessageBox.Show(CStr(Zahl))


    edit:
    String in Int umgewandelt.
    Hier Aber Aufpassen da bei Falschen "Input" das ganze nicht funktioniert.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."

    sothere schrieb:

    wieder aufrufen kann.
    So:

    VB.NET-Quellcode

    1. Dim txt = "0,0,10,10,50,255,17,38,75,250,150,120"
    2. Dim parts() = txt.Split(","c)
    3. For i = 0 To parts.Length - 1
    4. MessageBox.Show(parts(i))
    5. Next
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hi
    Danke erstmal für eure Hilfe.
    Ich hab aber ein anderes Problem:
    Ich habe eine bestimmte Anzahl solcher Strings, weiß aber nicht, wieviele.
    Ich muss also erstmal eine unbekannte Anzahl von Strings sortieren, eher ich dann auf einen dieser Strings zugreifen kann.
    Ich habe gehofft, das man das irgendwie so machen kann, das ich sage:
    Von String 1, gib Speicherplatz 7 an.
    Das "gib Speicherplatz an" hab ich jetzt (Danke nochmal :) ), aber das Abspeichern des Strings.
    Geht das mit einem Array? Wenn ja, wie befülle ich die in VB und rufe sie wieder auf?
    Liebe Grüße
    sothere
    Dann musst du halt zwei Listen ineinander schachteln. Das funktioniert aber nicht wirklich anders als mit einer Liste.

    VB.NET-Quellcode

    1. Dim strings As IEnumerable(Of String)
    2. Dim values = strings.Select(Function(s) s.Split(","c).Select(Function(value) Integer.Parse(value)).ToArray()).ToArray()
    Meinst du so was?

    Quellcode

    1. Dim sAlleZahlen As String()
    2. Dim Zahl As Integer
    3. Dim sZahlen As String()
    4. Dim String1, string2, string3, string4 As String
    5. String1 = "0,0,10,10,50,255,17,38,75,250,150,120"
    6. string2 = "1,0,10,10,50,255,17,38,75,250,150,120"
    7. string3 = "2,0,10,10,50,255,17,38,75,250,150,120"
    8. string4 = "3,0,10,10,50,255,17,38,75,250,150,120"
    9. sAlleZahlen = {String1, string2, string3, string4}
    10. 'MessageBox für jede 1. Zahl alles Strings
    11. For Each strg As String In sAlleZahlen
    12. sZahlen = strg.Split(","c)
    13. Zahl = CInt(sZahlen(0))
    14. MessageBox.Show(CStr(Zahl))
    15. Next


    Anstelle der messagebox kannst du ja dann deine Trefferkriterien abfragen
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    "strings" ist die Auflistung deiner Strings, das kann ein Array, eine List(Of T) oder sonst irgend was sein, solange nur IEnumerable(Of T) implementiert wird (deswegen hab ich auch das hingeschrieben). Jeder der dort enthaltenen Strings wird gesplittet, die einzelnen Teile nach Integer gecastet und daraus dann ein Array gebildet. Du bekommst hier ein jagged-Array, also ein Array, welches Arrays enthält (nicht zu verwechseln mit einem zweidimensionalen Array).
    Nein, mein Problem ist, das ich nicht von vorne aus sagen kann, es gibt 5 strings.
    Ich will praktisch folgendes haben:

    Stringkette1 = ""
    Stringkette2 = ""
    Stringkette3 = ""
    .
    .
    .
    StringketteX = ""

    Und dann will ich sagen, mit welcher ich weiterabeiten will, wobei ich hier nur einen numerischen wert habe, um das Objekt anzusprechen.
    So komplex wie von Artenus muss das eigentlich nicht sein, ich will bloß eine Liste haben.
    Oder geht das nicht anders?
    Liebe Grüße
    sothere
    Das geht mit sowohl mit meiner als auch mit Artentus' Lösung.
    Die müssen nur entsprechend angepasst werden. Das solltest du schon selbst hinbekommen.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."