![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Добрый день. Есть два варианта функции (удаляет теги и текст между тегами)
Вариант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. может есть недостатки? кто знает, напишите, пожалуйста |