Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Загрузка файлов и превращение 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


Наверх

Титульная страница Поиск, карта сайта Написать письмо