Namen kopieren/Nächste Zeile kopieren

  • VB.NET

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

    Namen kopieren/Nächste Zeile kopieren

    Moin!
    Ich habe ein kleines Problem. Ich möchte aus einem Text, bzw. aus einer Email, herausfiltern, wer die Mail geschrieben hat.
    Der Text lautet an einer Stelle:
    "Mit freundlichen Grüßen,
    Max Mustermann"
    Der Text ist in einer Richtextbox.
    Den Namen "Max Mustermann", bzw. die Zeile nach "Mit freundlichen Grüßen", möchte ich also herausfiltern und in ein Label daneben kopieren.
    Mein Code dazu ist aktuell:

    VB.NET-Quellcode

    1. If RichTextBox1.Text.Contains("Mit freundlichen Grüßen,") Then
    2. Label1.Text = "Die Mail ist von " & ??
    3. End If

    Leider weiß ich nicht, wie ich den Namen, bzw. die Zeile, ansteuern kann.
    Vielen Dank im Voraus!
    Du kannst von Richtextbox die Zeilen auch als String-Array abrufen. Und dann suchst du die Zeile mit "freundliche Grüsse", und die Zeile danach ist vielleicht der Absender.

    VB.NET-Quellcode

    1. dim lines As String() = RichTextBox1.Lines
    2. dim i = lines.IndexOf("Mit freundlichen Grüßen,")
    3. Label1.Text = "Die Mail ist von " & lines(i+1)

    Die Richtextbox hat die Eigenschaft Lines. Da kann man per Schleife (z.b. for each) durch iterieren. In jedem Durchlauf die aktuelle „line“ auf „mit freundlichen Grüßen“ prüfen (ggf. .ToLower() damit Groß-/Kleinschreibung egal ist) . Falls du einen Treffer landest, weißt du das in der nächsten Zeile die keine Leerzeile ist, der Name kommen muss.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    entweder Du machst aus der Zeile das hier:
    Dim i = Array.IndexOf(lines, "Mit freundlichen Grüßen,")

    oder eben etwas anders:

    VB.NET-Quellcode

    1. Dim lines = RichTextBox1.Lines.ToList
    2. Dim i = lines.IndexOf("Mit freundlichen Grüßen,")
    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.

    Neu

    @Peaceman Was machst Du, wenn der schreibfaule Absender nur mfg oder Mit freundlichem Gruß drunter schreibt?
    Was, wenn da noch eine Leerzeile dazwischen ist?
    Was, wenn ... ?
    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!

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