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

 

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

 

Code:

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 > 0then

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") лежит на форме и поэтому не видим.

 

Пример:

Code:

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;

 

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить