Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Структура кода при обработке текстов   Найти похожие ветки 

 
Pcrepair ©   (2012-06-17 11:28) [0]

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


 
Медвежонок Пятачок ©   (2012-06-17 11:34) [1]

а почему не регулярками?


 
Pcrepair ©   (2012-06-17 11:42) [2]

у каждого свои развлечения


 
brother ©   (2012-06-17 11:45) [3]

а если
> T: TStringList; First: String; Second: String

заменить на TStringList и в процедуре проверять не одно слово а список слов на соответствие Second: String?


 
Медвежонок Пятачок ©   (2012-06-17 11:46) [4]

Вопрос: можно ли все СЛОВО1 как то прописать в виде массива?

можно


 
brother ©   (2012-06-17 11:47) [5]

> или всетаки правильно так и делать:

для твоей задачи (да и вообще) не правильно...



Страницы: 1 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.052 c
15-1332879004
Дмитрий С
2012-03-28 00:10
2013.03.22
Как скрыть диски для пользователя?


15-1343757442
brother
2012-07-31 21:57
2013.03.22
Диск есть, а вот его нет!


9-1193300178
SergGG
2007-10-25 12:16
2013.03.22
Перевод координат в OpenGL


15-1346063472
>|<
2012-08-27 14:31
2013.03.22
Локализация утечки памяти


6-1266221364
Pavel
2010-02-15 11:09
2013.03.22
Время обработки запроса