![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Конвертация HTML в TXT [D6, WinXP]
DarkLord © (2004-12-17 19:47:00)Hi All!
Суть задачи:
Есть программа, парсящая текст. Есть сайт с необходимой, часто обновляющейся информацией. Программа работает только с обычным текстом. Вопрос в том, как HTML перегнать в TXT.
Вижу такие пути решения:
1. Написать самому "с нуля" разбор HTML-а, удаление тэгов и т.п. Но долго и гиморно. Хотя, при наличии каких-либо наработок - можно. Фишка в том, что у меня наработок нет :)
2. В Internet Explorer есть менюшка "сохранить как". Так вот там можно выбрать текстовый формат для сохранения текущей страницы. Можно ли из Дельфей обратиться к эксплореру, подсунув ему HTML, и заставив сохранить в текст? Или может через МС Ворд можно?
3. Взять готовый компонент и не морочить голову.
3-й вариант не совсем предпочтителен, т.к. мало ли, что на HTML-странице может встретиться... а исправить трудно будет.
Предпочтителен 1-й или 2-й способ. Подтолкните мою мысль в этом направлении, пожалуйста.
Поиск в инете результатов не дал. Вернее есть готовые программы, но это не совсем то, что требуется. Да и работают они, мягко говоря, хреново.
DarkLord (2004-12-19 19:49:00) [1]Всем огромное спасибо. Победил таки... с вашей помощью ;)
easy (2004-12-17 23:56:00) [2]s:=WebBrowser.OleObject.document.body.innerText;
Sergey_Masloff (2004-12-17 22:18:00) [3]Можно еще получить документ и см. MSDN
IOleCommandTarget
OLECMDID_SAVEAS
Gero (2004-12-17 21:58:00) [4]var
PersistFile: IPersistFile;
PersistFile := WebBrowser.Document as IPersistFile;
PersistFile.Save(StringToOleStr('textfile.txt'), True);
DarkLord (2004-12-17 21:48:00) [5]Спасибо. Со вставкой разобрался. Но вопрос пока открыт...
Я работаю в 6-ой Дельфе и пользую TWebBrowser, для загрузки самой страницы. Она у меня грузится и отображается... а вот сохранить её в текстовом виде - никак. Хоть бы как-то текст получить. Попытался через TWebBrowser.GetTextBuf - мимо... в буфере пару левых символов висят.
Наверное пока придется вручную теги удалять... Хоть там и не сильно много писанины, но метод 2 уж больно красивый. Жалко, что пока въехать не могу.
Вот получилось таким образом: запросом GET, через сокет, получил страницу и загоняю её в StringList. А дальше? Как её прикрутить к эксплореру, но не для отображения, а для "конвертации"?
Sergey_Masloff (2004-12-17 20:43:00) [6]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 20:31:00) [7]Если можно, то немножко подробнее об импорте ActiveX и Microsoft Internet Controls...
Хоть в двух словах... :)
Sergey_Masloff (2004-12-17 20:20:00) [8]2) Импорт АктивИкс в меню
Microsoft Internet Controls
TWebBrowser