Zitat von
himitsu:
nur mal ein kleiner Hinweis zum ursprünglichem Code:
bei z.B. diesem String "abc>def<xyz>" wär dein Code schön in einer Endlosschleife gelandet
statt dem
Pos im Delete hättest du eher 'nen
PosEx verwenden sollen.
wohl wahr, danke.
in dem code wahr noch ein kleiner fehler.
"SetLength(result, ResultIndex);" <-- da mussnoch 1 vom ResultIndex abgezogen werden, da ja nach dem letzten zeichen nochmal inkrementiert wird.
hier nochmal korrigiert:
Delphi-Quellcode:
function StripHTMLTags(
const HTML:
String):
String;
var
TagDepth, i, ResultIndex: Integer;
begin
TagDepth:=0;
ResultIndex:=1;
SetLength(result, length(
HTML));
for i:=1
to length(
HTML)
do
begin
case HTML[i]
of
'
<': inc(TagDepth);
'
>':
if TagDepth > 0
then dec(TagDepth);
else if TagDepth = 0
then
begin
result[ResultIndex]:=
HTML[i];
inc(ResultIndex);
end;
end;
end;
SetLength(result, ResultIndex - 1);
end;