Syntax Highlighting (Regex ist zu langsam)

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Wulf.

    Syntax Highlighting (Regex ist zu langsam)

    Hallo zusammen,

    ich versuche nun seit ca. 1 woche in einer RichTextBox Syntax Highlighting hinzubekommen. Auch mit der SuFu und Google hatte ich keinen erfolg.
    Hab es schon mit Regex versucht und auch mit der Find funktion der RTB aber das problem ist, dass es bei größeren Texten
    einfach zu lange braucht um den Text zu durchsuchen.
    (bitte keine fertigen controlls oder sowas ich möchte es selber machen)

    Kennt möglicherweise jemand eine methode das ganze zu beschleunigen

    Im vorraus schonmal danke für die hilfe.
    hab diesen code in sufu gefunden:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Hilight(ByVal Wort As String)
    3. Dim Index As Integer = RichTextBox1.Text.IndexOf(Wort)
    4. Do Until Index = -1
    5. RichTextBox1.SelectionStart = Index
    6. RichTextBox1.SelectionLength = Wort.Length
    7. RichTextBox1.SelectionColor = Color.Blue
    8. Index = RichTextBox1.Text.IndexOf(Wort, Index + 1)
    9. Loop
    10. RichTextBox1.SelectionStart = Richtextbox1.Text.Length
    11. RichTextBox1.SelectionColor = Color.Black
    12. End Sub
    13. Private Sub RichTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox1.TextChanged
    14. Hilight("Public")
    15. End Sub
    16. End Class


    mfg Gugi
    @Gugi
    Danke für die Antwort aber so in der art hab ich das auch schon probiert aber das ist bei größeren dokumenten einfach zu langsam.


    Ist es villeicht möglich immer nur den sichtbaren Bereich zu färben? Das würde denke ich alles beschleunigen nur weis ich nicht wie ich das anstellen soll?
    RegEx ist nicht zu langsam, nur du verwendest das ganze völlg Falsch, du musst nicht im Text suchen, sondern viel mehr im RTF Text, dort durchsuchst du alles einmal(geht sehr schnell, ebenso das setzen der Farbe) und erst anschließend wird das Ergebnis angezeigt...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    könnte einer von euch mir möglicherweise den aufbau des rtf formats erklären?
    hab zwar schon gefunden wo der text steht, der font festgelegt wir und wo die farbe steht nur weis ich nicht was der ganze rest außenherum bedeutet, oder mir eine vorlage für den Regex-Pattern geben.

    Hab was gefunden für alle dies interresiert: Lösung

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Wulf“ ()