Как выполнить поиск и замену текста

<< Нажмите, чтобы показать Содержание >>

Как выполнить поиск и замену текста

Поиск

Основные методы – TRichView.SearchText и TRichViewEdit.SearchText.

Поиск может выполняться с учётом или без учёта регистра, вверх или вниз. Также поддерживается поиск только целых слов.

Параметры диалога поиска можно преобразовать в параметр SrchOptions этих методов с помощью GetRVSearchOptions или GetRVESearchOptions.

Замена

Используйте TRichViewEdit.SearchText, чтобы выделить старую строку.

Затем вызовите InsertText, чтобы заменить её новой. Перед вставкой этот метод удаляет выделенную часть документа. Если поиск выполняется в обратном направлении, задайте параметр CaretBefore равным True, либо используйте опцию «SmartStart».

Поиск в неформатированном документе

При обычном поиске методы требуют, чтобы документ был отформатирован. Это происходит потому, что поиск обычно начинается с выделенного фрагмента или позиции каретки, а найденный результат тоже выделяется. Всё это требует форматированного документа.

ТРВ-Редактор предоставляет возможность поиска без использования выделения, и следовательно, без форматирования. Для этого нужно сначала использовать опцию (параметр SrchOptions), начинающую поиск с начала документа, и обработать событие OnTextFound. В этом событии нужно запретить обработку по умолчанию (то есть выделение текста). Если нужен дальнейший поиск, нужно запомнить найденную позицию и далее использовать опцию поиска от запомненной позиции.

Такой поиск полезен, если его нужно выполнить быстро в непоказываемом документе.

Примеры

Демо-проекты.

Диалог поиска реализован в основном демо-проекте редактора:

Demos\*\Editors\Editor 1\

Диалоги поиска и замены реализованы в демо-проекте:

Demos\*\Assorted\Search and Replace\

В качестве альтернативы можно использовать Инструменты интерфейса ТРВ (RichViewActions). Они включают готовые команды (actions) для поиска и замены текста.