![]() |
|
|
Регистрация | << Правила форума >> | 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'); |
#2
|
|||
|
|||
![]() можно так:
Код:
procedure ExchangeAll(L: TStringList; a: array of string; b: string); var i: integer; begin for i := 0 to high(a) do Exchange(L, a[i], b); end; ... ExchangeAll(StringList, ['a', 'b', 'c'], '*'); |
Этот пользователь сказал Спасибо Pyro за это полезное сообщение: | ||
Pcrepair (17.06.2012)
|
#3
|
|||
|
|||
![]() Pyro, спасибо
буду пробовать |
#4
|
|||
|
|||
![]() Цитата:
А что, стандартной функцией StringReplace воспользоваться нельзя? |
#5
|
|||
|
|||
![]() низзя, слишком простая
|
#6
|
||||
|
||||
![]() Ну тогда регэкспы в зубы.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#7
|
||||
|
||||
![]() Цитата:
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |