Inhalt eines Strings "zerteilen"

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von DXF87.

    Inhalt eines Strings "zerteilen"

    Hallo,

    ich bastel gerade an einem Tool zum überwachen- und ändern von Konfigurationsdateien. Das ganze funktioniert schon recht gut, bis auf das auswerten des Strings der als Antwort von den Servern kommt. Hier mal der String, der zerteilt werden soll:

    VB.NET-Quellcode

    1. CONFIG=Config_Daten / Config_Daten2
    2. INTERFACE0=Interface0_Daten / Interface0_Daten2
    3. INTERFACE1=Interface1_Daten / Interface1_Daten2
    4. INTERFACE2=Interface2_Daten - Interface2_Daten2
    5. .



    Mein Problem ist nun, wie bekomme ich den String so zerteilt, das ich z.b. in einem Listview damit verschiedene Spalten füllen kann? Bei Google etc habe ich über die RegEx und String.split Funktion gelesen, schaffe es aber irgendwie nicht das gewünschte Ergebnis zu bekommen. Größtes Problem hatte ich damit, dass die Daten einmal mit "/" und einmal mit "-" getrennt sind.

    Es sollte dann so aussehen (Listview):

    Config----------|-Config2---------|----------Interface ----------|---------InterfaceDaten

    Config_Daten---|--Config_Daten2---|-----Interface0_Daten-------|--------Interface0_Daten2
    ... ------------|-------------------|----Interface1_Daten --------|--------Interface1_Daten2
    ... ------------|-------------------|----Interface2_Daten --------|--------Interface2_Daten2


    Hoffe es ist verständlich. Ich hoffe es kann mir jemand bei dem Problem helfen.

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „DXF87“ ()

    Also ehrlich gesagt weiß ich nicht genau, wie du das meinst...

    Wie genau willst du die Ausgabe haben?
    Und wie kommen die Dateien rein? Ist der Ausschnit, den du gespostet hast, (ein Teil) eine(r) Datei?
    Du hast mehrererere Möglichkeiten, die du ja auch schon genannt hast:

    1. String.Split > Das setzt natürlich voraus, dass du der Funktion das gewünschte Trennzeichen als Parameter übergibst. Die selbe zu analysierende Konfigurationsdatei wird ja immer das gleiche Trennzeichen verwenden. Die Zuordnung Datei-Trennzeichen kannst du in einer Dictionary hinterlegen, damit du des für jede Konfig nur einmalig angeben mußt.

    2. Regex > Hier kannst du z.B. die erlaubten Zeichen angeben z.B. nur Ziffern 0-9 und Buchstaben a-z, A-Z. Alles andere wird dann rausgeworfen und du bekommst ein Array mit den gewünschten Ausgaben zurück. Aber auch da kannst du u.U. auf die Schn... fallen, wenn in den Einzelstrings z.B. Sonderzeichen erlaubt sind, die anderswo als Trennzeichen verwendet werden. Frag mich aber bitte jetzt nicht nach einem Regex-Beispiel. Ich weiß, dass es geht, hab aber noch nie damit rumgemacht. da gibt es hier genügend Experten und iwo auch nen Regex-Tester (Google)

    Fiel Fergnügen

    Vatter

    Edit:
    Achso, nimm keine Listbox. Specihere deine Einzelstrings in einer Datatable bereits in die Spalten sortiert und binde diese an ein Datagridview. Ist bessere Trennung von GUI und Daten und die Spalten werden entsprechend der Datatable automatisch angelegt.
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:
    Sieh Dir mal dies an:

    VB.NET-Quellcode

    1. Dim delimiter() As Char = {"-"c, "/"c}
    2. Dim text As String = "bbb-bbb-ccc/ddd/eee"
    3. Dim lines() As String = text.Split(delimiter)
    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!