![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Загрузка файлов и превращение html->txt [D7, XP]
Данил.Ялта © (2006-12-12 08:29:00)Два вопроса:
1) как тхт или хтмл файл из интернета сохранить на диск?
2) как текст, который есть в хтмл странице сохранить в тхт файл, чтоб тегов в нем уже не было?
MetalFan (2006-12-12 12:58:00) [1]вот мой вариант "убивалки" тэгов.
работать будет 100% быстрее, чем [1]2
function RemoveTags( const AHTML: string ): string;
var
i: Integer;
lLenHTML, lLenResult: Integer;
lChr: Char;
lSkip: Boolean;
lSetRes: Boolean;
begin
Result := '';
lLenHTML := Length( AHTML );
if lLenHTML = 0 then Exit;
lLenResult := 0;
lSetRes := False; //флаг установки длины Result
lSkip := False; //флаг пропуска содержания <>
for i := 1 to lLenHTML do // понеслась
begin
lChr := AHTML[i]; //берем символ из строки
if lChr in ['<','>'] then //если к начало/конец тэга
begin
lSkip := lChr = '<'; //то выставляем/сбрасываем флаг пропуска
Continue;
end;
if not lSkip then
begin
if not lSetRes then
begin
lSetRes := True;
SetLength( Result, lLenHTML ); //сразу резервируем длину строки по максимуму
end;
Inc( lLenResult );
Result[lLenResult] := lChr; //так работает быстрее, чем просто Result := Result + lChr; проверено
end;
end;
SetLength( Result, lLenResult); //"обрезаем" лишний мусор.
end;
MetalFan (2006-12-12 12:32:00) [2]2. проще написать свой алгоритм удаления всего, что в <>
novill (2006-12-12 09:44:00) [3]1. либо компонентами (Indy) либо функцией Internetreadfile.
2. проще всего (WebBrowser.Document as IHtmlDocument2).body.outerText