Zeichen oder Zeichenfolge in Text finden und alle markieren

  • VB.NET

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

    Zeichen oder Zeichenfolge in Text finden und alle markieren

    Liebe Forum User,

    Ich möchte in einem Text Zeichenfolgen finden und markieren.
    Die Zeichenfolgen werden gefunden.
    Was muss ich nun machen damit ich die gefunden Zeichen auch alle markieren kann?

    Schon mal vorab Danke für Eure Inputs/Unterstützung.


    VB.NET-Quellcode

    1. Private Sub btnSuchen_Click(sender As Object, e As EventArgs) Handles btnSuchen.Click
    2. Dim pattern As String = "(" & txtSuchen.Text & ")"
    3. Dim input As String = txtString1.Text
    4. Dim result() As String = Regex.Split(input, pattern)
    5. Dim text As String = txtString1.Text
    6. ' Instanz erstellen.
    7. Dim r As Regex = New Regex(pattern, RegexOptions.IgnoreCase)
    8. ' Nach 'Text-Muster' suchen.
    9. Dim m As Match = r.Match(Text)
    10. Dim matchcount As Integer = 0
    11. Dim länge As Integer = 0
    12. Do While m.Success
    13. matchcount += 1
    14. m = m.NextMatch()
    15. txtString1.Select(m.Index, m.Length)
    16. Loop
    17. lblAnzGefunden.Text = "Der gesuchte String wurde " & matchcount & " mal gefunden"
    18. End Sub[u][/u][u][/u]
    Moin,

    mit Boardmitteln ist das nicht möglich, da die (Rich-)TextBox keine mehrfachen Auswählungen unterstützt. Du müsstest dafür ein eigenes Control entwickeln oder die Funde einzeln (z. B. nach einem Buttonklick "Nächster Fund") durchlaufen.
    Mit freundlichen Grüßen,
    Thunderbolt
    Ah, ja klar, ich hab "Select" und "Selection" gleichgesetzt... Also natürlich, der TE muss dann in der RTB markieren, nicht selektieren.
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais

    carepicha schrieb:

    markieren
    nicht, das kannst Du pro (Rich-) TextBox genau mit einer fortlaufenden Zeichengruppe tun.
    In einer RichTextBox jedoch kannst Du beliebigen Text beliebig formatieren, Schriftgröße, Vordergrund Hintergrund, Zeichensatz und die ganzen Font-Properties: RichTextBox1.SelectionFont = myFont.
    Siehe Snippet vom @ErfinderDesRades .
    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!