Es ist keine VBLine aber verhält sich so, was kann es sein, wie kann ich es aus einem string ausschneiden?

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Es ist keine VBLine aber verhält sich so, was kann es sein, wie kann ich es aus einem string ausschneiden?

    Hallo liebe community,
    ich arbeite gerade viel mit strings und jetzt hänge ich an einem problem und zwar taucht dieses nach einem for each auf, wenn ich den string, der for each line aus einem string gezogen wird ausgebe oder versuche damit zu arbeite, kommt es so vor als hätte es eine vbnewline am anfang und dann kommt erst der eigentliche string. der code sieht so aus



    For Each Line As String In Stringal.split(vbcrlf)

    msgbox(line)
    next


    der string der line heißt und über die messagebox ausgegeben wird sieht folgend aus


    "
    Hi"


    eine zeile wird am anfang leergelassen, wieso ist das so und wie kann ich diese leere zeile ausschneiden?
    Probier mal dies:

    VB.NET-Quellcode

    1. Dim lines() As String = System.IO.File.ReadAllText("C:\Temp\Text.txt").Split(New String() {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries)
    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!
    Je nachdem, wo und wie die Datei entstanden ist, können als Line-Separator folgende Varianten in Frage kommen:
    CrLf (meist Windows)
    Lf (meist Unix, evtl. DOS)
    Cr (Mac u.a.)

    Bei ReadAllText bekommst du diese Separatoren richtig ausgewertet, musst den String aber von Hand nochmals splitten mit Environment.NewLine (s.o.)
    ReadAllLines liefert dir die Einzelzeilen gleich als Array. Ist also vielleicht für dein Vorhaben die einfachere Variante.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --