wszystko można załatwić za pomocą funkcji pos, copy, length i delete
procedure TForm1.Button1Click(Sender: TObject);
var
pocz, kon, text :string;
poczatek, koniec: integer;
begin
pocz:=Edit1.Text; // fragment rozpoczynający wycięty łańcuch
kon:=Edit2.Text; // fragment kończący wycięty łańcuch
text:=Memo1.Text; // tekst, z którego chcesz wycinac łańcuch
while (pos(pocz,text)<>0) and (pos(kon,text)<>0) do
begin
poczatek:=pos(pocz,text)+length(pocz); // ustala początek łańcucha
koniec:=pos(kon,text); // ustala koniec łańcucha
Memo2.Lines.Add(copy(text,poczatek,koniec-poczatek)); // wycina łańcuch
delete(text,1,koniec+length(kon)); // usuwa sprawdzony fragment
end;
end;
działa z małą wadą, jeśli masz taki tekst:
text text text abc text abc text xyz
to wycięty fragment będzie wyglądał tak:
" text abc text "
Jeśli Ci to przeszkadza, to na pewno można to jakoś rozwiązać, wystarczy troche posiedzieć.