Optimierte Version, die einzelne < oder > erkennt:
Delphi-Quellcode:
function StripTags( line: string): string;
var
p, p1, p2, pr, pt: PChar;
begin
p:= PChar(line);
while( p <> nil) and ( p <> '') do
begin
p1 := StrScan( p, '<');
if p1 <> nil then
begin
p2 := StrScan( p1, '>');
pt := StrScan( p1+1, '<');
if pt <> Nil then
if pt < p2 then //weiteres < vor >
begin
StrLCopy( pr, p, p1-p);
Result := Result + pr;
p := p1;
p1 := pt;
end;
if p2 <> Nil then
begin
StrLCopy( pr, p, p1-p);
Result := Result + pr;
p := p2+1;
end
else
begin
Result := Result + p;
p:= nil;
end
end
else
begin
Result := Result + p;
p:= nil;
end;
end;
end;
Problem nur noch wenn beides in "richtiger" Reihenfolge auftritt.