Поиск по тексту и отметка найденных слов - 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);
            }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы