Добрый день. Есть два варианта функции (удаляет теги и текст между тегами)
Вариант1
Код:
function DelJS(const Code:string):string;
var
Buffer:string;
StartTeg:integer;
EndTeg:integer;
i:integer;
begin
Buffer:=Code;
repeat
try
StartTeg:=Pos('<script', Buffer);
EndTeg:=Pos('</script>', Buffer);
Delete(Buffer, StartTeg, EndTeg-StartTeg+9);
i:=Pos('<script', Buffer);
except
break
end;
until i = 0;
Result:=Buffer;
end;
Вариант2
Код:
function DelJS(const Code:string):string;
var
EndTeg:string;
Buffer:string;
index1:integer;
index2:integer;
i:integer;
begin
EndTeg:='</script>';
Buffer:=Code;
index1:=Pos('<script', Buffer);
while (index1 <> 0) do
begin
index2 := index1;
i := 1;
while i <> 10 do
begin
try
Inc(index2);
if Buffer[index2] = EndTeg[i] then
Inc(i)
else
i := 1;
except
break
end;
end;
Delete(Buffer, index1, index2 - index1 + 1);
index1 := Pos('<script', Buffer);
end;
Result := Buffer;
end;
Оба варианта работают в общем одинаково, удаляют что назначено, грузят проц на большом файле и все такое
ВНИМАНИЕ!!! Вопросы:
1. какой вариант более соотвествует классическому стилю программирования, более правильный?
2. может есть недостатки? кто знает, напишите, пожалуйста