Zeilenanfang eindeutig identifizieren

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Unwesen.

    Zeilenanfang eindeutig identifizieren

    Guten Tag Community,

    Ich habe mehrere Strings welche folgendes Schema haben:

    "abcdefg Premium"
    "abcdefg Admin"
    "abcdefgh Benutzer:"
    "abcdefghij Mitglied:"

    Möchte nun jeden String bzw jede Zeile rausfiltern, welche nurmit "abcdefg" beginnt. Es kann oder es steht nach "abcdefg" immer etwas, was sich jedes mal ändern kann bzw Benutzerbeliebig ist.

    Mit der "StartsWith" Funktion geht es nicht, da die anderen Strings ja auch mit abcdefg starten. Auch mit "Contains" geht es nicht, weil die anderen Strings ja schließlich abcdefg auch beinhalten.

    Hoffentlich könnt ihr mir helfen.

    MfG user44

    //Edit: Nochmal in kurzform, so wie es das Programm am Ende ausführen soll. "Wenn die Zeile mit abcdefg anfängt dann notiere sie in der Variable x"

    fichz schrieb:

    VB.NET-Quellcode

    1. String.Contains("abcdefg ") 'Leerzeichen nach g


    lg


    Danke geht so aber leider nicht. Anstatt "abcdefg" kann bei mir auch " " stehen. Direkt danach, folgt dann ein Name z.B. : " Admin".

    Die Leerzeichen sind nicht immer dabei.

    MfG user44

    //Edit: Ein anderes Beispiel! Vor jedem String befinden sich eine bestimmte anzahl von Leerstellen. Wenn es 4 Leerstellen sind dann soll der komplette String in TextBox1. Wenn es 6 sind in TextBox2 usw.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „user44“ ()

    MB-Tech schrieb:

    Probiers mal mit der StartsWith Funktion.

    LG


    Danke, erstmal

    Hab in meinem Ersten Post schon geschrieben, dass es mit StartsWith leider nicht geht.

    Warum? Weil wenn es jetzt z.B. 4 Leerzeichen sind und in der nächsten zeile 6 und ich StartsWith benutze wählt er beide aus, weil ja die Zeile mit den 6 Leerzeichen am anfang 4 besitzt..
    Ein anderes Beispiel! Vor jedem String befinden sich eine bestimmte anzahl von Leerstellen. Wenn es 4 Leerstellen sind dann soll der komplette String in TextBox1. Wenn es 6 sind in TextBox2 usw.

    Und warum sollte das mit StartsWith nicht machbar sein?
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim rn As New Random
    3. Dim loSource As New List(Of String)
    4. Dim Pfad As String = IO.Path.Combine(My.Computer.FileSystem.SpecialDirectories.Desktop, "test.txt")
    5. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    6. loSource.AddRange(IO.File.ReadAllLines(Pfad))
    7. For Each item As String In loSource
    8. If item.StartsWith(" ") AndAlso Not item.StartsWith(" ") Then
    9. ListBox1.Items.Add(item)
    10. ElseIf item.StartsWith(" ") Then
    11. ListBox2.Items.Add(item)
    12. End If
    13. Next
    14. End Sub
    15. End Class

    test.txt:

    Quellcode

    1. 4lz-1
    2. 6lz-2
    3. 4lz-3
    4. 6lz-4
    5. 4lz-5
    6. 6lz-6
    7. 6lz-7
    8. 6lz-8
    9. 6lz-9
    10. 4lz-10
    11. 4lz-11
    12. 4lz-12
    13. 6lz-13


    Eigentlich ja wieder viel zu viel C&P. Ein Hinweis auf ANDALSO NOT hätte es wohl auch getan. XD