![]() |
|
|
Регистрация | << Правила форума >> | 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. может есть недостатки? кто знает, напишите, пожалуйста |