Поиск по тексту и отметка найденных слов - 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); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д