Показать сообщение отдельно
  #1  
Старый 17.06.2012, 11:32
Pcrepair
 
Сообщения: n/a
По умолчанию Структура кода при обработке текстов

Добрый день. Есть, к примеру, такая процедура:

Код:
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');
Ответить с цитированием