Clipboard.GetText => Text aufsplitten

  • VB.NET

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

    Clipboard.GetText => Text aufsplitten

    Hallo zusammen,

    ich kopiere mehrere Zeilen Text in die Zwischenablage:

    Quellcode

    1. Dim items As New System.Text.StringBuilder
    2. items.AppendLine("Test1")
    3. items.AppendLine("Test2")
    4. items.AppendLine("Test3")
    5. items.AppendLine("Test4")
    6. My.Computer.Clipboard.SetText(items.ToString)
    7. MessageBox.Show(Clipboard.GetText())


    Wie kann ich den Text Zeilenweise wieder auslesen oder aufsplitten?

    Vielen Dank

    Goof

    Goof schrieb:

    Zeilenweise
    So:

    VB.NET-Quellcode

    1. Clipboard.SetText(items.ToString)
    2. Dim txt = Clipboard.GetText()
    3. Dim lines() = txt.Split(New Char() {ControlChars.Cr, ControlChars.Lf}, 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!
    Das einfachste geht so:

    VB.NET-Quellcode

    1. For Each line In Clipboard.GetText().Split({Environment.NewLine}, StringSplitOptions.None)
    2. MessageBox.Show(line)
    3. Next

    Allerdings können Zeilvorschübe auch anders kodiert sein, und dann ergeben sich mehrere, etwas kompliziertere Möglichkeiten.

    @Rod: deine Variante deckt zwar alle möglichen Codierungen ab, verschluckt dafür aber Leerzeilen, falls Leerzeilen eingegeben wurden.