Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

Курс видеоуроков программирования и крэкерства 6.0
(актуальность: февраль 2017)
Свежие инструменты, новые видеоуроки!

  • 300+ видеоуроков
  • 800 инструментов
  • 80 свежих книг и статей

УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО 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 + #10#13;
         else
         if FilterMemo.Lines.GetText[i] = '<' then
           repeat
             inc(i);
           until
             FilterMemo.Lines.GetText[i] = '>'
         else
           // ищем tab
           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;
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS