Как-то раз пришлось решить задачу удаления из файла элементов 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)
elsewith 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 dobegin
FilterMemo.SelectAll;
j := FilterMemo.SelLength;
if j > 0 thenbegin
i := 0;
repeat// ищем crif FilterMemo.Lines.GetText[i] = Char(VK_RETURN) then
S := S + #10#13;
elseif FilterMemo.Lines.GetText[i] = '<' thenrepeat
inc(i);
until
FilterMemo.Lines.GetText[i] = '>'
else// ищем tabif 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); // добавляем строку в WebPageendelse
Add('No data entered into field.'); // no data in text fileend;
end;
Применение функции:
Всё, что нужно сделать - это вызвать :
LoadFileIntoList("filename.txt",Webpage, True);
Где:
filename
это имя файла, который вы хотите обработать.
WebPage
это TStringList
последний параметр в функции
указывает, применять или нет HTML-фильтр.
PS: В этом примере объект TMemo (который вызывается из "FilterMemo") лежит на форме и поэтому не видим.
удаление ненужных ссылок, преобразование возврата каретки в HTML-параграфы, знаков табуляции в пробелы и т.д. с помощью процедур TMainForm.LoadFileIntoList и TMainForm.FilterHTML.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.