![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Добрый день. Есть, к примеру, такая процедура:
Код:
procedure TForm1.Exchange(T: TStringList; First: String; Second: String); var s: String; index, len: integer; begin s := T.Text; len := Length(First); index := AnsiPos(First, s); while (index <> 0) do begin Delete(s, index, len); Insert(Second, s, index); index := AnsiPos(First, s); end; T.Text := s; end; Процедура находит в тексте СЛОВО1 и меняет его на СЛОВО2 Для обработки текста используется: Код:
procedure TForm1.Button1Click(Sender: TObject); begin if OpenDialog1.Execute and FileExists(OpenDialog1.FileName) then begin T := TStringList.Create; T.LoadFromFile(OpenDialog1.FileName); Exchange(T, 'СЛОВО1', 'СЛОВО2'); Memo1.Lines := T; end; end; Причем Exchange(T, 'СЛОВО1', 'СЛОВО2'); приходится последовательно вызывать и соотвественно писать в вызове процедуры необходимое количество раз. Допустим СЛОВО2 везде одно и тоже Вопрос: можно ли все СЛОВО1 как то прописать в виде массива? или еще чего, так чтобы procedure TForm1.Exchange сама брала очередное СЛОВО1 и меняла на СЛОВО2 в тексте. или всетаки правильно так и делать: Код:
Exchange(T, 'ророр', 'СЛОВО2'); Exchange(T, 'рпак', 'СЛОВО2'); Exchange(T, 'вяваса', 'СЛОВО2'); ...... Exchange(T, 'опрнаев', 'СЛОВО2'); |