
04.04.2010, 19:36
|
|
Участник форума
Регистрация: 30.03.2007
Сообщений: 121
С нами:
10060964
Репутация:
52
|
|
Писал же:
Вместо:
insert('_',S,Paste[i]+j);
использовать:
insert('_',S,length(s)-Paste[i]+j);
Берем длину сообщения: length(s)
Вычитаем из нее нужное число: Paste[i]
добавляем сдвиг : j (это что бы не учитывались ранее вставленые _ )
Вот исправленый пример во 2 варианте:
PHP код:
procedure TForm1.Button1Click(Sender: TObject);
const
Delimiter=',';
Replacement='_';
var
I:integer;
Num,Str:string;
begin
Str:=edit1.text;
Num:=edit2.text+Delimiter;
I:=0; {новая позиция, с уже добавлеными символами}
While length(Num)>0 do
begin
insert(Replacement,Str,length(Str)-strtoint(copy(Num,1,pos(Del imiter,Num)-1))+I);
delete(Num,1,pos(Delimiter,Num));
inc(I);
end;
edit1.Text:=Str;
end;
Последний раз редактировалось JnK; 04.04.2010 в 19:40..
|
|
|