Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.02;
Скачать: CL | DM;

Вниз

Конвертация HTML в TXT   Найти похожие ветки 

 
DarkLord   (2004-12-17 19:47) [0]

Hi All!

Суть задачи:
Есть программа, парсящая текст. Есть сайт с необходимой, часто обновляющейся информацией. Программа работает только с обычным текстом. Вопрос в том, как HTML перегнать в TXT.

Вижу такие пути решения:
1. Написать самому "с нуля" разбор HTML-а, удаление тэгов и т.п. Но долго и гиморно. Хотя, при наличии каких-либо наработок - можно. Фишка в том, что у меня наработок нет :)
2. В Internet Explorer есть менюшка "сохранить как". Так вот там можно выбрать текстовый формат для сохранения текущей страницы. Можно ли из Дельфей обратиться к эксплореру, подсунув ему HTML, и заставив сохранить в текст? Или может через МС Ворд можно?
3. Взять готовый компонент и не морочить голову.

3-й вариант не совсем предпочтителен, т.к. мало ли, что на HTML-странице может встретиться... а исправить трудно будет.

Предпочтителен 1-й или 2-й способ. Подтолкните мою мысль в этом направлении, пожалуйста.

Поиск в инете результатов не дал. Вернее есть готовые программы, но это не совсем то, что требуется. Да и работают они, мягко говоря, хреново.


 
Sergey_Masloff   (2004-12-17 20:20) [1]

2) Импорт АктивИкс в меню

Microsoft Internet Controls

TWebBrowser


 
DarkLord   (2004-12-17 20:31) [2]

Если можно, то немножко подробнее об импорте ActiveX и Microsoft Internet Controls...
Хоть в двух словах... :)


 
Sergey_Masloff   (2004-12-17 20:43) [3]

DarkLord   (17.12.04 20:31) [2]
Да без проблем

В меню Component->Import ActiveX Control

В списке (большом) нужно выбрать Microsoft Internet Controls

И внизу нажать кнопку CreateUnit будет создан модуль который включаешь в Uses и вперед.

var ie;
begin
 ie := TWebBrowser.Create();
и вперед

Также еще можно нажать кнопку Install и он прямо в палитру компонентов вставит компонент но в D6 и выше это не сделаешь так как там уже есть компонент TWebBrowser (кстати его можешь и использовать - я просто с D5 в основном работаю вот сразу и не вспомнил)


 
DarkLord   (2004-12-17 21:48) [4]

Спасибо. Со вставкой разобрался. Но вопрос пока открыт...

Я работаю в 6-ой Дельфе и пользую TWebBrowser, для загрузки самой страницы. Она у меня грузится и отображается... а вот сохранить её в текстовом виде - никак. Хоть бы как-то текст получить. Попытался через TWebBrowser.GetTextBuf - мимо... в буфере пару левых символов висят.

Наверное пока придется вручную теги удалять... Хоть там и не сильно много писанины, но метод 2 уж больно красивый. Жалко, что пока въехать не могу.

Вот получилось таким образом: запросом GET, через сокет, получил страницу и загоняю её в StringList. А дальше? Как её прикрутить к эксплореру, но не для отображения, а для "конвертации"?


 
Gero ©   (2004-12-17 21:58) [5]

var
 PersistFile: IPersistFile;

PersistFile := WebBrowser.Document as IPersistFile;
PersistFile.Save(StringToOleStr("textfile.txt"), True);


 
Sergey_Masloff   (2004-12-17 22:18) [6]

Можно еще получить документ и см. MSDN

IOleCommandTarget
OLECMDID_SAVEAS


 
easy ©   (2004-12-17 23:56) [7]

s:=WebBrowser.OleObject.document.body.innerText;


 
DarkLord   (2004-12-19 19:49) [8]

Всем огромное спасибо. Победил таки... с вашей помощью ;)



Страницы: 1 вся ветка

Текущий архив: 2005.01.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.063 c
3-1101984849
Denmin
2004-12-02 13:54
2005.01.02
Как в программе установить Default Value для поля?


3-1102066275
DmitryZ
2004-12-03 12:31
2005.01.02
Table is busy - проблема


4-1098984080
mr_alexandr
2004-10-28 21:21
2005.01.02
Работа с портами в Делфи


1-1103364229
Хакер
2004-12-18 13:03
2005.01.02
Сортировка строк и удаление дубликатов


6-1097643023
L.evil
2004-10-13 08:50
2005.01.02
Делаю веб сервер на IdHTTPServer.