bei leerer Zeile splitten

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    bei leerer Zeile splitten

    Hallo zusammen,

    ich möchte zB folgenden Text bei den Leerzeilen splitten:

    Textanfang:
    Das ist der 1.Teil; 12 usw
    Das ist der 1.Teil; 12 usw

    Das ist der 2.Teil; 12 usw
    Das ist der 2.Teil; 12 usw

    Das ist der 3.Teil; 12 usw
    Das ist der 3.Teil; 12 usw

    Textende

    Es sollen nur die Textteile in dem Array stehen.
    also zB:
    Das ist der 1.Teil; 12 usw
    Das ist der 1.Teil; 12 usw


    mit:

    VB.NET-Quellcode

    1. Dim Teil_Text() As String = Tab_Untertext.Split(vbLf)

    wird nach jeder Zeile gesplittet ?(

    mit:

    VB.NET-Quellcode

    1. Dim Teil_Text() As String = Regex.Split(Tab_Untertext, "\s\r")

    komme ich auch nicht weiter

    Wie kann ich das am Besten machen? Ich denke mit Regex , oder ?
    Aber wie ?

    Vielen Dank für eure Vorschläge.

    Gruß von majachen
    eine Leerzeile besteht aus zwei Zeilvorschüben hintereinander!

    Aber ich sehe, dass dein Code-Stil gleich 2 Kardinal-Fehler begeht:
    Besprechung und Korrektur-Hinweise:
    1. Option Strict On!
    2. Böse Funktionen vermeiden

    Siehe auch Visual Studio - Empfohlene Einstellungen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

    majachen99 schrieb:

    Es sollen nur die Textteile in dem Array stehen.
    Das geht so:

    VB.NET-Quellcode

    1. Dim txt = IO.File.ReadAllText("C:\Temp\Test.txt")
    2. Dim parts() = txt.Split(New Char() {Convert.ToChar(10), Convert.ToChar(13)}, System.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!

    VB1963 schrieb:

    er meint es glaub ich so...
    Jou, beides funktioniert an diesem Test-Text.
    Aber ich hab schon die übelsten Zeilenschaltungen und Kombinationen erlebt, die müssen auch alle erfasst werden.
    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!
    Vielen Dank an euch alle für die schnelle Hilfe.

    bei mir ging es nur mit VB1963 seinem Vorschlag

    ich habe es nun so gemacht:

    VB.NET-Quellcode

    1. Dim strSeparator() As String = {vbLf & vbLf}
    2. Dim Teil_Text() As String = Tab_Untertext.Split(strSeparator, StringSplitOptions.None)


    Rod du hast Recht. Wenn ich nun verschiedene Umbrüche im Text funktioniert es nicht mehr.
    kann ich hier:

    VB.NET-Quellcode

    1. Dim strSeparator() As String = {Environment.NewLine & Environment.NewLine}

    mehrere Seperatoren mit oder ähnlich unterbringen?

    Danke

    majachen99 schrieb:

    mehrere Seperatoren
    So:

    RodFromGermany schrieb:

    VB.NET-Quellcode

    1. Dim txt = IO.File.ReadAllText("C:\Temp\Test.txt")
    2. Dim parts() = txt.Split(New Char() {Convert.ToChar(10), Convert.ToChar(13)}, System.StringSplitOptions.RemoveEmptyEntries)
    oder so:

    VB.NET-Quellcode

    1. Dim ch() = New Char() {Convert.ToChar(10), Convert.ToChar(13)}
    2. Dim parts() = txt.Split(ch, System.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!