Главная » Delphi » Удаление HTML тегов в Delphi

Удаление HTML тегов в Delphi

удаление тег HTML Delphi  delphi  В своем новом проекте застрял на удалении HTML тегов из переменной. За час удалось найти в интернете готовую функцию, которую я немного доработал и делюсь с вами.

 

 

 

function delhtmlteg(str:string):string;
var
i:Dword;
s:string;
start:boolean;
begin   if str='' then exit;   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]<>#0) and (str[i]<>#13)then s:=s+str[i];
      end;
  result:=s;
end;

Похожие записи
Температура процессора на Delphi... Давно искал рабочий код для определения температуры процессора на Delphi. Многие предлагали копать в сторону WMI, но у меня ничего универсального не п...
Программа для автопрокрутки сайта thedeepestsite.c... Многие из вас, наверное, уже знакомы с самым глубоким в мире сайтом Borjomi thedeepestsite.com. Мне он тоже понравился. Идей гениальная. Я 15 минут к...
Text Browser на Delphi Для оптимизации сайтов под поисковые системы, написал для себя вот такой текстовый веб-браузер. Хотя с браузером я конечно загнул - это скорее просмот...
Индикатор загрузки процессора на Delphi...   Решил поделиться небольшим примером индикатора загрузки процессоров на Delphi. За основу взят компонент adCpuUsage. Думаю, что это дополнени...
This entry was posted in Delphi and tagged , , , . Bookmark the permalink.

7 комментариев: Удаление HTML тегов в Delphi

  1. Waik говорит:

    Реально работает. Особенно после обработки напильником (в плане удаления символов типа  )

  2. source™ говорит:

    перепостил код
    сейчас он не подпорчен

    • Waik говорит:

      :) с кодом все в порядке было. Сорри за невнятность. В моем HTML файле есть масса специальных символов. Например неразрывный пробел, copyright, знаки больше меньше... Последние чтобы не совпадать с обрамлением тегов кодируются & # 060; Вот их потом тоже приходится либо вообще вырезать либо заменять на настоящие символы "", пробелы заменять на просто пробелы и т.д. Но это уже мои заморочки. Короче говоря - утащил к себе ваш код. Спасибо.

  3. Стертор говорит:

    Функция хорошая, большое спасибо. Но позвольте немного покритиковать: зачем так злоупотреблять pos/posex, если можно 1 раз вызвать ее и в дальнейшем использовать полученное значение?
    [code]
    if pos('0 then Delete(str,pos('<style',str),posEx('',str,pos('<style',str))+8-pos('', [rfReplaceAll]);
    StringReplace(Result, '<', '<', [rfReplaceAll]);
    StringReplace(Result, '&', '&', [rfReplaceAll]);
    StringReplace(Result, ' ', ' ', [rfReplaceAll]);
    StringReplace(Result, '"', '"', [rfReplaceAll]);
    StringReplace(Result, '©', #169, [rfReplaceAll]);
    end;[/code]

  4. Стертор говорит:

    [code]function HTMLReplaceSpecials(Str: string): string;
    begin
    Result := Str;
    StringReplace(Result, '>', '>', [rfReplaceAll]);
    StringReplace(Result, '<', '<', [rfReplaceAll]);
    StringReplace(Result, '&', '&', [rfReplaceAll]);
    StringReplace(Result, ' ', ' ', [rfReplaceAll]);
    StringReplace(Result, '"', '"', [rfReplaceAll]);
    StringReplace(Result, '©', #169, [rfReplaceAll]);
    end;[/code]

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *