Kiedyś sobie napisałem taką funkcję(skasuj co tam nie potrzebne)
function SzukajZnacznikow(var s, sz: String; var pos: Integer;
const s_begin, s_end: String): Boolean;
var
pos_begin,
pos_end: Integer;
length_begin,
length_end: Integer;
begin
result := false;
pos_begin := PosEx(s_begin, s, pos); // szukaj znacznika poczatkowego
if pos_begin <> 0 then begin // jezeli znaleziono
length_begin := Length(s_begin); // pobierz dlugsc znacznika poczatkowego
pos_end := PosEx(s_end, s, pos_begin+length_begin); // szukaj znacznika koncowego
if pos_end <> 0 then begin // jezeli znaleziono
length_end := Length(s_end); // pobierz dlugsc znacznika koncowego
result := true;
pos := pos_begin;
sz := Copy(s, pos_begin+length_begin, pos_end-(pos_begin+length_begin));
Delete(s, pos_begin, (pos_end+length_end)-pos_begin);
end;
end;
end;
użycie:
var
TekstZnaleziony: String;
Pozycja: integer;
begin
pozycja := 1 // szukaj od poczatku lancucha
while SzukajZnacznikow(ZrodloWWW, TekstZnaleziony, Pozycja, '<A HREF....', '</A>') do
begin
memo1.lines.add(tekstznaleziony);
end;
end;
pętla się wokonuję do pÓÓÓÓki nie napotka na koniec łańcucha.