function StripHTML(S: string): string;
var
TagBegin, TagEnd, TagLength: integer;
begin
TagBegin := Pos( '<', S); // search position of first <
while (TagBegin > 0) do
begin // while there is a < in S
TagEnd := Pos('>', S); // find the matching >
TagLength := TagEnd — TagBegin + 1;
if (TagLength > 0)
then begin
Delete(S, TagBegin, TagLength); // delete the tag
TagBegin:= Pos( '<', S); // search for next <
end
else begin
break;
end;
end;
Result := S; // give the result
end;
Вариант 2 с твоим кодам не разбирался, я как-то писал себе такое, вот код
Код Delphi
function TForm1.delTeg(str:string):string;
var i:Dword; s:string; start:boolean;
begin
start:=false;
while (pos('<style',str)>0)or(pos('<script',str)>0) do begin
if pos('<style',str)>0 then
Delete(str,pos('<style',str),posEx('</style>',str,pos('<style',str))+8-pos('<style',str));
if pos('<script',str)>0 then
Delete(str,pos('<script',str),posEx('</script>',str,pos('<script',str))+8-pos('<script',str));
end;
for i:=0 to length(str)do begin
if(str[i]='>')then begin
start:=false; Continue;
end;
if (str[i]='<')or(start) then begin
start:=true; Continue;
end;
if (str[i]<>#13)and(str[i]<>#10)and(str[i]<>#0)and(str[i]<>#9) then
s:=s+str[i];
end;
result:=s;
end;
Добавлено через 36 секунд
uses StrUtils