Исходники.Ру - Программирование
Исходники
Статьи
Книги и учебники
Скрипты
Новости RSS
Магазин программиста

Главная » Статьи по программированию » Delphi - Все статьи »

Обсудить на форуме Обсудить на форуме

Удаление HTML элементов из текста

Как-то раз пришлось решить задачу удаления из файла элементов HTML таких, как, например, ненужные ссылки, и в то эе время преобразования возврата каретки в HTML параграфы, знаков табуляции в пробелы и т.д. В результате соответственно должен был получиться новый HTML документ.

Следующие две процедуры показывают, как это можно сделать:

Листинг:

procedure TMainForm.LoadFileIntoList(TextFileName:String;
                                     AWebPage:TStringList;
                                     WithFilter:Boolean); 
var CurrentFile : TStringList; 
begin 
   CurrentFile := TStringList.Create; 
   CurrentFile.LoadFromFile(TextFileName); 
   if WithFilter then 
      FilterHTML(CurrentFile,AWebPage) 
   else 
      with AWebPage do AddStrings(CurrentFile); 
   CurrentFile.Free; 
end; 

procedure TMainForm.FilterHTML(FilterInput, AWebPage:TStringList); 
var 
   i,j : LongInt; 
   S   : String; 
begin 
   FilterMemo.Lines.Clear; 
   FilterMemo.Lines := FilterInput; 

   with AWebPage do 
   begin 
      FilterMemo.SelectAll; 
      j := FilterMemo.SelLength; 

      if j > 0 then 
      begin 
         i := 0; 
         repeat 
// ищем cr 
            if FilterMemo.Lines.GetText[i] = Char(VK_RETURN)
            then S := S+'' 
            else if FilterMemo.Lines.GetText[i] = '<' 
                 then repeat 
                         inc(i); 
                      until FilterMemo.Lines.GetText[i] = '>' 
// ищем tab 
                 else if FilterMemo.Lines.GetText[i] = Char(VK_TAB)
                      then S := S+'    ' 
// добавляем текст 
                      else S := S+ FilterMemo.Lines.GetText[i];
            inc(i); 
         until i = j+1; 
         Add(S);     // добавляем строку в WebPage 
      end else Add('No data entered into field.');   // no data in text file 
   end; 
end; 

Применение функции:

Всё, что нужно сделать - это вызвать :

LoadFileIntoList("filename.txt",Webpage, True); 

Где,

  • filename - это имя файла, который вы хотите обработать.
  • "WebPage" - это TStringList
  • последний параметр в функции указывает, применять или нет HTML-фильтр.

PS: В этом примере объект TMemo (который вызывается из "FilterMemo") лежит на форме и поэтому не видим.

Пример:

   WebPage := TStringList.Create; 
   try 
      Screen.Cursor := crHourGlass; 
      AddHeader(WebPage); 
      with WebPage do 
      begin 
         Add('Personal Details');         
         LoadFileIntoList("filename.txt",Webpage, True); 
      end; 
      AddFooter(WebPage); 
   finally 
      WebPage.SaveToFile(HTMLFileName); 
      WebPage.Free; 
      Screen.Cursor := crDefault; 
   end; 

Может пригодится:


Автор: Неизвестен
Прочитано: 3999
Рейтинг:
Оценить: 1 2 3 4 5

Комментарии: (1)

Прислал: Ball
полезная статья для веб мастеров!!

Добавить комментарий
Ваше имя*:
Ваш email:
URL Вашего сайта:
Ваш комментарий*:
Код безопастности*:

Рассылка новостей
Рейтинги
© 2007, Программирование Исходники.Ру