Внешний вид сайта:

Удаление 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('Нет данных в поле.');   // нет данных в текстовом файле
   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;

Комментарии

Нет комментариев. Ваш будет первым!