Jede Zeile aus Richtextbox splitten ?

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Load-soft.ch.vu.

    Jede Zeile aus Richtextbox splitten ?

    Hallihallo

    Kann mir jemand sagen wie ich aus einer Richtextbox wo ich mehrere Einträge untereinander habe splitten kann?

    Beispiel:

    test1=1234
    test2=5678
    test3=9012

    usw.


    Habe schon folgenden code nur da geht es nur richtig wenn ich einen eintrag drin habe.

    VB.NET-Quellcode

    1. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    2. Dim Eingabe As String = RichTextBox1.Text
    3. Dim Splitter() As String
    4. Dim i As Integer
    5. Splitter = Eingabe.Split("=") ' ohne Eingabe wird bei leerzeichen gesplittet
    6. For i = 0 To Splitter.Count - 1
    7. Label1.Text = Splitter(i) & vbCrLf 'Nur zur Ansicht was er splittet
    8. Next
    9. End Sub


    Wie mache ich das jetzt das in jeder Zeile geguckt wird ob ein = Zeichen da ist und er das dann splittet und im Label1 und noch nen Label 2 usw. z.b ausgibt ?

    das im Label1 das steht 1234
    Label 2 das steht 5678
    Label 3 das steht 9012


    Wäre schön wenn mir jemand helfen könnte.

    Danke schonmal

    Gruß KeyT0ast3r
    Hierfür eignet sich RegEx.

    VB.NET-Quellcode

    1. Dim matchC As MatchCollection = Regex.Matches(RichTextBox1.Text, "((?:[a-z][a-z]*[0-9]+[a-z0-9]*))=(\d+)")
    2. For Each m As Match In matchC
    3. MessageBox.Show("Ausgang: " & m.Groups(0).Value & vbCr & "Gefiltert: " & m.Groups(1).Value & " - " & m.Groups(2).Value)
    4. Next


    Das geht nur, wenn es auch in dem Format ist (Alphanum=Zahl)

    MfG

    // Edit: Zeichen vertauscht :) und =)
    Hi,
    Ich suche eig. immer ne Lösung ohne Regex und würde das so machen (nicht getestet):

    VB.NET-Quellcode

    1. Public Function GetAllValues(ByVal Pfad As String) As Specialized.NameValueCollection
    2. Dim Out As New Specialized.NameValueCollection
    3. For Each Lines As String In IO.File.ReadAllLines(Pfad)
    4. Dim Arr As String() = Lines.Split("=")
    5. Out.Add(Trim(Arr(0)), Trim(Arr(1)))
    6. Next
    7. Return Out
    8. End Function

    Hoffe das klappt :D
    Übrigens: Jetzt kannst du schreiben wert=value und wert = value und wert = value usw. die Leerzeichen werden wegen Trim entfernt.
    Mfg
    Mike