Метод StringReplace из VCL
Ещё одна стандартная функция библиотеки VCL, позволяющая на C++ Builder (или Delphi) тривиально делать множественную замену строк в тексте, причём, без всякого "ручного" разбора. Опять пример того, когда ничего парсить не нужно (хотя и полезно бывает при обучении поразбирать любые строки "вручную").
Пример: в поле ввода Edit1
содержится текст, который надо заменить в файле, Edit2
содержит текст, на который заменяем, SList
- это список TStringList
, в который мы загружаем файл (список создаётся программно), результат пишем в многострочное текстовое поле Memo1
. Наконец, OpenDialog1
- стандартный диалог открытия файла с вкладки палитры компонентов Dialogs
.
Код будет такой:
TStringList *sList = new TStringList; if (OpenDialog1->Execute()) { sList->LoadFromFile(OpenDialog1->FileName); Memo1->Text = sList->Text; } //... String str = StringReplace( sList->Text, Edit1->Text, Edit2->Text, TReplaceFlags() << rfReplaceAll << rfIgnoreCase); Memo1->Text = str;
Это всё, пример, думаю, напишете сами :) Предполагается, что всё в Юникоде, тогда не должно быть проблем с поиском и заменой кириллицы.
14.10.2010, 09:41 [10911 просмотров]