Как организовать поиск по тексту и выделить найденные элементы в TRichEdit в C++Builder?C++

Программы на C++. Форум разработчиков
Anonymous
Как организовать поиск по тексту и выделить найденные элементы в TRichEdit в C++Builder?

Сообщение Anonymous »

У меня проблема. Необходимо организовать поиск по тексту и выделить найденные элементы. Не могу понять, почему проблема в том, что ветка "отлетает" или что-то в этом роде. Программа C++, среда C++Builder.
Я использовал ChatGPT, но он мне не помог. Не могу понять, почему проблема в том, что ветка "отлетает" или что-то в этом роде.
Вот мой код (работает некорректно):

Код: Выделить всё

void __fastcall TForm1::btnSearchClick(TObject* Sender)
{
String searchTextStr = SearchText->Text;
String allText = RichEditText->Text;
RichEditText->SelStart = 0;
RichEditText->SelLength = allText.Length();
RichEditText->SelAttributes->Color = clWindowText;

int foundPos = allText.Pos(searchTextStr);
int searchOffset = 0;

while (foundPos > 0) {
RichEditText->SelStart = searchOffset + foundPos - 1;
RichEditText->SelLength = searchTextStr.Length();
RichEditText->SelAttributes->Color = clRed;

searchOffset += foundPos;
allText = allText.SubString(foundPos + searchTextStr.Length(), allText.Length() - foundPos - searchTextStr.Length() + 1);
foundPos = allText.Pos(searchTextStr);
}
}
Это моя проблема:
Изображение


Подробнее здесь: https://stackoverflow.com/questions/786 ... in-triched

Вернуться в «C++»