Mehrzeiligen String durchlaufen/suchen/zerlegen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    Mehrzeiligen String durchlaufen/suchen/zerlegen

    Hallo zusammen,

    ich bekomme über die Zwischenablage Daten von einem anderen Programm.Das schaut dann z. B. so aus:


    Kundennummer
    131239

    Adresse
    Musterstrasse
    124711 Musterhausen
    Deutschland
    Telefon+49 (123) 4711
    Fax
    E-Mailmustermann@mail.deWebsite


    Die Frage ist jetzt, wie kann ich den Inhalt auslesen?

    1 Problem:
    Die eigentliche Info, die ich benötige befindet sich immer in der Zeile unter dem Suchbegriff. (Suchbegriff z.B. Fax)

    2 Problem:
    Es kann aber auch sein, dass nach dem Suchbegriff direkt der nächste Suchbegriff in der kommenden Zeile folgen kann.

    VB.NET-Quellcode

    1. Public Shared Sub getDaten()
    2. Dim TextString As String = My.Computer.Clipboard.GetText & "#Ende#" & vbCrLf
    3. Dim aLine As String = ""
    4. Dim strReader As New StringReader(TextString)
    5. While True
    6. aLine = strReader.ReadLine()
    7. Try
    8. Select Case aLine.ToString
    9. Case "Kundennummer"
    10. Case "Adresse"
    11. Case "Fax"
    12. End Select
    13. Catch ex As Exception
    14. My.Computer.Clipboard.Clear()
    15. End Try
    16. If aLine = "#Ende#" Then Exit While
    17. End While
    18. End Sub
    19. 'Wenn Case "Fax" dann lese die nächste Zeile, wenn dort nicht E-Mail steht



    MFG
    Kopier Dir den ClipboardText in ein StringArray und werte dieses aus. Ohne While und Co.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. If Not Clipboard.ContainsText Then Exit Sub
    3. Dim TextLinesOfTheClipboard = Clipboard.GetText.Split 'spaltet an Whitespaces wie Zeilenumbrüchen und Co.; ggf. anpassen
    4. 'Clipboard.Clear() 'musst Du selber wissen, ob das Clipboard geleert werden soll
    5. For i = 0 To TextLinesOfTheClipboard.Count - 2
    6. If TextLinesOfTheClipboard(i).StartsWith("Telefon") Then MessageBox.Show(TextLinesOfTheClipboard(i + 1))
    7. Next
    8. End Sub

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.