Поиск по тексту и отметка найденных слов - C#
Формулировка задачи:
Нужно сделать поиск по тексту с отметкой всех найденных слов. Проблема в том, что отмечается первое слово, потом если в тексте есть еще одно совпадение, то отмечается не найденное совпадение а следующее слово.
Я не могу понять как написать, чтобы оно брало начальный индекс не со следующего слова, а со следующего совпадения.
Листинг программы
- if (textBox2.Text == "")
- MessageBox.Show("Введите текст");
- else{
- string[] words = stroka.Split(new Char[] { ',', ' ', '\n' });
- int index = stroka.IndexOf(textBox2.Text);
- for(int i=0;i<words.Length;i++){
- MessageBox.Show(words[i]);
- if (words[i] == textBox2.Text)
- {
- {
- MessageBox.Show("Индекс входа " + index.ToString());
- richTextBox1.SelectionStart = index;
- richTextBox1.SelectionLength = textBox2.TextLength;
- richTextBox1.SelectionColor = Color.Green;
- MessageBox.Show("Количество символов " + (richTextBox1.SelectionLength).ToString());
- index = richTextBox1.SelectionLength+1;
- }
- }
- }
- }
- return stroka;
Решение задачи: «Поиск по тексту и отметка найденных слов»
textual
Листинг программы
- var index = richTextBox1.Find(textBox1.Text);
- while (index > -1)
- {
- richTextBox1.SelectionBackColor = Color.Yellow;
- index = richTextBox1.Find(textBox1.Text, index + 1, RichTextBoxFinds.WholeWord);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д