У меня есть приложение формы windows, которое использует RichTextBox
для отображения текста из файла. Также есть TextBox
и Button
для поиска по тексту. Всякий раз, когда нажимается кнопка, содержимое TextBox
ищется и просвечивается в RichTextBox
. Вот код в обработчике события button_Click
:
String search = richtextboxContent.Text;
richtextboxContent.Text = "";
richtextboxContent.Text = search;
#region code Search
string keyword = textboxsearch.Text.Trim();
int startPosition = 0;
int endPosition = 0;
int endArticle = richtextboxContent.Text.Length;
for (int i = 0; i < endArticle; i = startPosition)
{
if (i == -1)
{
break;
}
startPosition = richtextboxContent.Find(keyword, startPosition, endArticle, RichTextBoxFinds.None);
if (startPosition >= 0)
{
count++;
richtextboxContent.SelectionBackColor = Color.Yellow;
endPosition = textboxsearch.Text.Length;
startPosition = startPosition + endPosition;
}
}
У меня есть один текстовый файл размером 20 Мб с 90 000 ++ строк, каждый раз, когда я ищу одно слово (что привело к 1300 совпадениям), код ниже более 10 минут до фини sh.
Как это можно улучшить?