Widziałem już różne tego wersje, ale niestety wszystkie były trefne. Jak wiadomo, najlepsze jest rozwiązanie własne :):), dlatego wziełem się za to i...
function TForm1.DelHtmlTags(s: string): string;
var
i,j,k: integer;
label label1;
begin
j:=1;
label1:
for i :=j to length(s)-1 do
if s[i] = '<' then
begin
for k := i+1 to length(s)-1 do
begin
if s[k] = '>' then
begin
Delete(s, i, k-i+1);
j := k+1;
goto label1;
end
else if s[k] = '<' then
begin
j:=k+1;
goto label1;
end;
end;
end;
Result := s;
end;
I niby wszystko dobrze, i rzeczywiście działa, ale niestety dla krótkiego tekstu. Jak jakiś dłuższy to już zostawia niektóre tagi nie mam pojęcia dlaczego. Przypuszczam, że chodzi o tę linię:
<font color="blue">Delete(s, i, k-i+1);</span>
Która realnie skraca zmienną string, ale czy teraz "length(s)" jest dalej tę wielkością czy tą nową... jeśli mnie rozumiecie :)
???