[delphi7]parser textu

0

Witam !
Poszukuję prostego parsera który będzie wyduszał z pośród dwóch znaczników tekst.
Podaję przykład <>tekst który chcę otrzymać po wyduszeniu</>
czyli mam otrzymać "tekst który chcę otrzymać po wyduszeniu".

0
 function CopyEx(const s: string; const Start: Byte; const Stop: Byte): string;
begin
 if Length(s) < Start then Exit;
 if Length(s) < Stop then Exit;

 Result := s;
 Delete(Result, Stop, Length(s));
 if Start > 1 then Delete(Result, 1, Start);
end;


//wykorzystanie
a := '<>tekst który chcę otrzymać po wyduszeniu</>';
b := CopyEx(a, Pos('<>', a) + 1, Pos('</>', a));
0

Jest w tym pewna wada jeżeli dam np.znaczniki z tekstem w środku <lokalizacja>jcjucuhh</lokalizacja> to otrzymuję okalizacja>jcjucuhh.
Opi ratuj.
Z góry wielkie dzięki.

0

Ech tylko trochę pomyśleć...

function ExtractString(inStr, sTag, eTag: string): string;
var
  p: Integer;
begin
  result:= '';
  p:= Pos(sTag, inStr);
  if (p < 1) then exit;
  p:= p + Length(sTag) - 1;
  Delete(inStr, 1, p);
  p:= Pos(eTag, inStr) - 1;
  if (p < 1) then exit;
  result:= Copy(inStr, 1, p);
end;
//wywołanie
s:= ExtractString('<tag>Testowy napis</tag>', '<tag>', '</tag>');

1 użytkowników online, w tym zalogowanych: 0, gości: 1