Показать сообщение отдельно

  #22  
Старый 04.04.2010, 19:36
JnK
Участник форума
Регистрация: 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(SenderTObject);
const
  
Delimiter=',';
  
Replacement='_';
var
  
I:integer;
  
Num,Str:string;
begin
  Str
:=edit1.text;
  
Num:=edit2.text+Delimiter;
  
I:=0; {новая позицияс уже добавлеными символами}
  While 
length(Num)>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..
 
Ответить с цитированием