Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > поиск и замена string данных


Автор: W1zArD 28.4.2006, 20:40
С Edit1 берется Text (Edit1.Text) и в тексте проводится поиск (даже банальным pos), далее если находится символ (например !) он меняется на текст в Edit2. Вот так...
 smile  

Автор: Alex 28.4.2006, 20:47
http://forum.vingrad.ru/index.php?showtopic=44663&view=findpost&p=347814 

Автор: DimassS 28.4.2006, 21:20
var
str: string;
Len,i:integer;
begin
s:=edit1.text;
len:=length(edit1.text);
for i:=1 to len do
if s[i]='!' then s[i]:=edit2.text;

end;

Думаю так... проверь!  

Автор: zalex 29.4.2006, 00:53
Код

var s:string;
i:Integer;
begin
s:=Edit1.Text;
For i:=1 to Length(s) do
 if s[i]='!' then begin
                  Insert(Edit2.Text,s,i);
                  Delete(s,i+Length(Edit2.Text),1)
                  end;
Edit2.Text:=s;

Пред пример не смотрел, но ИМХО, в Edit2 мож быть не только один символ. 

Автор: Yanis 29.4.2006, 01:22
Код

  if Pos('!', edit1.Text) > 0 then
    edit1.Text := StringReplace(edit1.Text, '!', edit2.Text, [rfReplaceAll]);
 

Автор: Sunvas 29.4.2006, 07:24
Цитата(DimassS @  28.4.2006,  21:20 Найти цитируемый пост)
if s[i]='!' then s[i]:=edit2.text;

Интересно, как это у тебя скомпилится?

zalex, твой метод не правильный, ибо если edit2.text будет больше чем 1 символ, то поиск далее фором до конца так и не дойдет! А еще 
Цитата(zalex @  29.4.2006,  00:53 Найти цитируемый пост)
Edit2.Text:=s;

вообще-то edit1.text;

Самое правильное решение у Yanis-а.  

Автор: W1zArD 2.5.2006, 04:42
спасибо 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)