Text zur Laufzeit durchsuchen

Dieses Thema Text zur Laufzeit durchsuchen im Forum ".NET Technology" wurde erstellt von Saheeda, 9. Aug. 2014.

Thema: Text zur Laufzeit durchsuchen Hallo, ich möchte mir soetwas in der Art basteln: RegExr: Learn, Build, & Test RegEx Also eine kleines...

  1. 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.

    Code (Text):

    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.
     
    Zuletzt bearbeitet: 9. Aug. 2014
  2. Vielleicht helfen dir diese Java-Grundlagen weiter --> *Klick*
  3. 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 ...
     
  4. Joose
    Joose Mitarbeiter
    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.

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

    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.
     
  5. KOSTENLOSES Java-Grundlagen Training im Wert von 39 € Sichere dir hier den kostenlosen Zugriff auf umfangreiches Java-Know How und starte richtig durch!