Добрый день. Есть, к примеру, такая процедура:
Код:
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');