Удаление 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;
Комментарии