# Text zur Laufzeit durchsuchen



## Saheeda (9. Aug 2014)

Hallo,

ich möchte mir soetwas in der Art basteln:
RegExr: Learn, Build, & Test RegEx

Also eine kleines Programm, mit dem ich "live" (also ohne weiteren Buttonklick) einen Text anhand eines eingegebenen RegEx durchsuchen kann.

Problem 1:
Implementierung der Live-Suche

Problem 2:
Das Highlighten.


Meine Idee:
Ich habe einen Timer eingebaut, der die Funktion CheckForRegex ausführt.
Leider scheint er die RegEx nicht zu erkennen, jedenfalls passiert nichts, wenn ich das Programm ausführe.

Desweiteren weiß ich nicht, wie ich das Highlighten implementieren kann. Ich arbeite noch nicht so lange mit WPF. Im TextBox-Menü finde ich zwar die Eigenschaft TextDecoration, aber die gilt ja anscheinend für die komplette Textbox und lässt sich nicht nur auf einzelne Zeichen anwenden.


```
public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
            tbDisplay.Text = tbText.Text;
            System.Windows.Threading.DispatcherTimer timer = new System.Windows.Threading.DispatcherTimer();

            timer.Interval = TimeSpan.FromSeconds(0.5);
            timer.Tick += CheckForRegex;
            timer.Start();
        }


        private void CheckForRegex(object sender, EventArgs e)
        {
            string textIn = tbText.Text;

            char[] regex = tbRegEx.Text.ToCharArray();

            string[] splitted = textIn.Split(regex);

            for (int i = 0; i < splitted.Length; i++)
            {
                if (splitted[i].Equals(textIn[i]))
                {
                    tbDisplay.Text += splitted[i];

                }
            }
        }
    }
```



Achja:
Ich hatte bisher im Debugger immer ein Fenster, in dem ich schrittweise verfolgen konnte, was mit den Variablen/Objekten passiert. Das habe ich versehentlich weggeklickt und weiß jetzt nicht mehr, wo ichs wiederhole :-/
Edit: Ich arbeite mit Visual C# 2008.


----------



## HarleyDavidson (15. Aug 2014)

Also wenn es hier um Java ginge, könnte ich dir ohne Probleme schnell helfen.

Aber mit C# bist du hier leider nicht im richtigen Forum gelandet ...


----------



## Joose (18. Aug 2014)

Saheeda hat gesagt.:


> Problem 1:
> Implementierung der Live-Suche



Dein Idee mit dem Timer ist zu kompliziert und verzögert das Ganze immer um eine gewisse Zeit.
Warum verwendest du nicht das TextChanged Event der TextBox?
Dann kannst du auf den geänderten Text direkt dein Regex anwenden.



Saheeda hat gesagt.:


> Problem 2:
> Das Highlighten.



Dazu gibt es im Internet genügend Materia: C# WPF Text Highlighting



Saheeda hat gesagt.:


> Achja:
> Ich hatte bisher im Debugger immer ein Fenster, in dem ich schrittweise verfolgen konnte, was mit den Variablen/Objekten passiert. Das habe ich versehentlich weggeklickt und weiß jetzt nicht mehr, wo ichs wiederhole :-/
> Edit: Ich arbeite mit Visual C# 2008.



Wenn du im Debug Modus bist gibt es im Menü einen Punkt "Debuggen"->"Fenster" und dort gibt es die unterschiedlichsten Fenster für den Debug Modus ich glaube "Überwachen" ist dein gesuchtes.


----------

