Код:
begin
i:=1;
k:=0;
For i:=1 to Length(Memo1.Text) do begin
if memo1.Text[i]='!' then begin
Memo2.Text:=Memo2.Text+Copy(Memo1.Text,(i-k)+1,k);
k:=0;
end;
if Memo1.Text[i]='.' then k:=0;
if Memo1.Text[i]<>'!' then k:=k+1;
end;
end;
Добавлено спустя 1 минуту 31 секунду:ваш код не смотрел, что-то слишком наворочено.
Добавлено спустя 16 минут 57 секунд:даже так, если первое предложение с восклицательным знаком вдруг будет.
Код:
begin
k:=1;
a:=0;
For i:=1 to Length(Memo1.Text) do begin
if memo1.Text[i]='!' then begin
Memo2.Text:=Memo2.Text+Copy(Memo1.Text,(i-k)+a,k);
k:=0;
end;
if Memo1.Text[i]='.' then begin
k:=0;
a:=1;
end;
if Memo1.Text[i]<>'!' then k:=k+1;
end;
end;