Текущий архив: 2003.11.17;
Скачать: CL | DM;
ВнизПРосмотр HTML страниц Найти похожие ветки
← →
sapsi (2003-10-24 09:18) [0]Добрый день.
Каким способом в Делфи можно HTML страницы конвертировать в текстовые файлы?
← →
sapsi (2003-10-24 09:42) [1]Нужно в автоматическом режиме сохранять их в виде текстовых файлов
← →
Reindeer Moss Eater (2003-10-24 09:46) [2]Они и так уже текстовые файлы, а не двоичные.
← →
sapsi (2003-10-24 09:58) [3]нет
← →
sapsi (2003-10-24 10:01) [4]Они сохраняются в виде html страниц, а нужно в текстовом формате.
При выполнениии команды WebBrowser1.ExecWB(4, 0), вызывается стандартная команда "Сохранить как" браузера. Там можно сохранить с расширением .txt. Нужно тоже самое без вызова окошка сохранения. ТО есть задать формат сохраняемого документа программно.
Очень прошу ответить знающего человека.
← →
Reindeer Moss Eater (2003-10-24 10:06) [5]Не надо смешивать в кучу "текстовые файлы" и "текстовые файлы, которые удобно читать".
От того, что в текстовом файле встречаются конструкции типа <HEADER></HEADER> он не перестает быть текстовым.
Он не перестает быть текстовым даже имея расширения .html
← →
sapsi (2003-10-24 10:12) [6]Я вроде написал, что мне надо....
Или до сих пор непонятно?
← →
TUser (2003-10-24 10:14) [7]Надо удалить все теги и комментарии. Можно ручками - просканироваь весь документ и удалить. Можно взять любой парсер.
← →
Reindeer Moss Eater (2003-10-24 10:15) [8]Мне стало предельно понятно что тебе надо и без вопроса. Хватило темы.
Я тебе хочу сказать, что то, чего ты хочешь и то, про что спрашиваешь - разные вещи.
← →
sapsi (2003-10-24 10:15) [9]Cам браузер может сохранять в виде файлов .txt.
Возможно ли сделать это программно?
← →
sapsi (2003-10-24 10:21) [10]Я предлагаю Reindeer Moss Eater сделать следующее:
1) Открыть Браузер и выполнить команду "сохранить как"
2) Сохранить страницу в виде файла с расширением html
3) Сохранить страницу в виде файла с расширением txt
4) Сравнить полученные результаты сохранения
Затем ответить мне на следующие вопросы:
1) Зачем мне парсить файл, если механизмы браузера позовляют это сделать, нужно только воспользоваться ими.
2) Есть ли смысл вести дискуссию о том, что такое текстовой файл (в блокноте можно открыть и екзешник), если нужно просто поделиться опытом программного сохранения в виде текста без тегов (см. пункт 4), если таковой опыт имеется, конечно.
С уважением.
← →
Reindeer Moss Eater (2003-10-24 10:21) [11]Возможно ли сделать это программно?
Хороший вопрос.
Вот еще два вопроса:
Делает ли это IE?
Делает ли он это аппаратно?
← →
sapsi (2003-10-24 10:36) [12]Вобщем понятно.
Спасибо за исчерпывающие ответы
← →
Reindeer Moss Eater (2003-10-24 10:37) [13]Какие вопросы такие и ответы
"Возможно ли сделать это программно?"
"Как удалить все теги и комментарии и скрипты из HTML документа?"
← →
sapsi (2003-10-24 10:43) [14]Я считаю, что ответы носят характер издевательства.
Так как уже несколько раз объяснил, что нужно сделать:
см. sapsi (24.10.03 10:01) и sapsi (24.10.03 10:21).
Если есть желание потрепаться - есть соответсвующая конференция.
Здесь ожидается ответ специалиста, а не встречные вопросы общего плана.
А если до сих пор непонятно, то привожу два отрывка из сохраненных в разном формате страницы Рэмблера.
1)
<html><head>
<style type="text/css"><!--
A:hover {COLOR: #FF0000}
.form {font-size:14px;}
.formbut {font-size:9pt;}
.m1 {font-family:Arial Cyr,Arial,Helvetica,sans-serif;font-size:9pt;}
.trans {font-family:Arial Cyr,Arial,Helvetica,sans-serif;font-size:10px;}
.search {font-family:Arial Cyr,Arial,Helvetica,sans-serif;font-size:10pt;}
.txt {font-size:12px;}
.radios {background-color:#3366cc;}
.hdr {font-family:Arial Cyr,Arial,Helvetica,sans-serif;}
.rub1 {font-family:Arial Cyr,Arial,Helvetica,sans-serif;color:#000000;}
a.v {color:#0000cc;}
.crawlt {
background-image: url( http://images.rambler.ru/tru/crawlt.gif);
}
.crawrt {
background-image:
2) Rambler: информационно-поисковая системаСДЕЛАТЬ СТАРТОВОЙлегкий |
классический
ИСКАТЬ
в Интернетев новостяхв товарахв Top100Расширенный поиск
РАМБЛЕР: - Тор100 - Магазины - Покупки - Путешествия - Работа - Право -
Здоровье - Компьютеры - Недвижимость - Телевидение СЕРВИСЫ: - Почта -
Фото - Поиск файлов - Домены - Словари - Карты - Антивирус - Открытки
СЕГОДНЯ: - Новости - Финансы - Спорт - Погода - Руметрика - ТВ-Программы -
Гороскоп
Мне нужен вариант № 2.
Что еще непонятно?
← →
Reindeer Moss Eater (2003-10-24 10:48) [15]А если до сих пор непонятно
Для особо одаренных повторяю:
Мне предельно ясно чего ты хочешь на самом деле.
← →
sapsi (2003-10-24 10:50) [16]Тогда еще раз спасибо за помощь в решении данного вопроса.
← →
Reindeer Moss Eater (2003-10-24 10:51) [17]Какие вопросы - такая и помощь.
← →
Плохиш_ (2003-10-24 10:54) [18]>sapsi (24.10.03 10:43) [14]
> Я считаю, что ответы носят характер издевательства.
Ну это уже твои проблемы.
Если бы твои вопросы не носили характер издевательства, то ты бы уже давно нашёл в help-е для TWebBrowser метод ExecWB и разобрался бы как он работает, а так см. Reindeer Moss Eater © (24.10.03 10:37) [13]
← →
sapsi (2003-10-24 10:58) [19]2 Плохиш
Этот метод я давно нашел.
Надо внимательнее вам читать посты.
Этот метод вызывает окно сохранения.
А мне не нужно этого окна, а нужно сохранять в предопределенном формате.
Что в моих вопросах непонятно?
← →
Плохиш_ (2003-10-24 11:13) [20]>sapsi (24.10.03 10:58) [19]
Хм.. в хелпе за пр. 30 сек нашёл OLECMDEXECOPT_DONTPROMPTUSER.
Это не поможет отцу русской демократии?
← →
sapsi (2003-10-24 11:17) [21]И в каком формате сохранится после выполениея этой команды, проверь
← →
bis (2003-10-24 11:44) [22]Reindeer Moss Eater и т.п.
а не проще ли не отвечать, чем издеваться?
или желание показать себя самым-самым ?
← →
Reindeer Moss Eater (2003-10-24 11:59) [23]bis ©
1. На что я не ответил?
2. Ответь ты.
← →
Кулюкин Олег (2003-10-24 12:27) [24]
> sapsi
1. Скачайте парсер HTML (THyperParse)
2. Распарсите HTML
3. Сохраните нужные теги
4. Формулируйте вопрос правильно.
> Reindeer Moss Eater © (24.10.03 10:21) [11]
> Возможно ли сделать это программно?
> Делает ли он это аппаратно?
Меня тоже умиляют такие формулировки.
← →
sapsi (2003-10-24 13:35) [25]Кто может ответить на вопрос?
Возможно ли каким-либо программным способом получить текстовой файл в том виде, в котором его сохраняет браузер, при выборе опции сохранения с расширением .txt?
см. sapsi (24.10.03 10:43) [14] Вариант № 2
← →
Reindeer Moss Eater (2003-10-24 13:36) [26]Возможно
← →
sapsi (2003-10-24 13:37) [27]В чем заключается этот способ.
← →
Кулюкин Олег (2003-10-24 13:38) [28]
> sapsi (24.10.03 13:35) [25]
> Кто может ответить на вопрос?
См. пост 24.
← →
Reindeer Moss Eater (2003-10-24 13:38) [29]"Этот" - это какой?
Спрашиваю не из издевательских побуждений а что бы понять о каком идет речь. Ибо их много.
← →
sapsi (2003-10-24 13:44) [30]Этот-который известен вам, пока ни одного так и не увидел.
Могу написать "эти".
Что-то изменится?
Любой работающий.
← →
bis (2003-10-24 13:44) [31]континуум с хвостиком, да?
мне бы селект на выбор самого простого из пространства всех вероятно возможных
← →
bis (2003-10-24 13:45) [32]может переедем в другой форум?
← →
Reindeer Moss Eater (2003-10-24 13:47) [33]Берем "неправильный" файл.
Открываем.
Последовательно ищем символ "<" и следующий за ним ">"
Удаляем все что между ними включая сами символы. Повторяем пока тэги не исчезнут.
или
[24]
← →
Reindeer Moss Eater (2003-10-24 13:48) [34]может переедем в другой форум?
Кто мешает?
← →
Кулюкин Олег (2003-10-24 13:49) [35]
> bis © (24.10.03 13:45) [32]
> может переедем в другой форум?
Кто-то держит?
Скатертью дорога.
← →
sapsi (2003-10-24 13:50) [36]2 Reindeer Moss Eater © (24.10.03 13:47) [33]
Берем "неправильный и т.д.....
То есть опцию "сохранить как" мы использовать не можем?
Все будем посимвольно просматривать и менять?
Это эффективный способ?
← →
Кулюкин Олег (2003-10-24 13:53) [37]
> sapsi (24.10.03 13:50) [36]
> То есть опцию "сохранить как" мы использовать не можем?
А если пользователь стер IE?
Вы будете проверять его наличие перед конвертацией?
← →
Ihor Osov'yak (2003-10-24 13:53) [38]IHTMLElement.InnerText (от тега BODY)
Смотреть в сторону mshtml.pas
Если не понятно - msdn, как ввод в тему можно delphi.vitpc.com/mastering/tweb.htm
← →
Reindeer Moss Eater (2003-10-24 13:54) [39]Все будем посимвольно просматривать и менять?
Это эффективный способ?
А у браузера конечно же (думаешь ты) "волшебные" функции есть непосимвольного поиска.
← →
sapsi (2003-10-24 14:03) [40]Так зачем изобретать велосипед?
Если мы подключаемся к word, например, мы пользуемся функциями, предоставляемыми им, его стандартным интерфейсом.
Зачем же здесь отступать от правила.
Синтаксический разбор я могу сделать.
НО зачем?
Можно было бы сразу написать, что HTML не может быть сохранен как plaintext и т.п. без тегов
← →
Плохиш_ (2003-10-24 14:10) [41]>sapsi (24.10.03 14:03) [40]
> Если мы подключаемся к word, например, мы пользуемся функциями,
> предоставляемыми им, его стандартным интерфейсом.
Что мешает подключиться к IE по анологии с Word
> Можно было бы сразу написать, что HTML не может быть сохранен
> как plaintext и т.п. без тегов
Почему не может?
← →
Кулюкин Олег (2003-10-24 14:10) [42]
> sapsi (24.10.03 14:03) [40]
> Так зачем изобретать велосипед?
Незачем.
Для сохранения HTML без тегов надо использовать браузер.
Для удаления лишних пробелов из строки и распечатки содержимого TMemo - Word.
Надо использовать имеющиеся наработки
← →
Basilio (2003-10-24 14:25) [43]> Кулюкин Олег © (24.10.03 13:53) [37]
> А если пользователь стер IE?
> Вы будете проверять его наличие перед конвертацией?
Тогда TWebBrowser не будет работать в принципе.
> Ihor Osov"yak © (24.10.03 13:53) [38]
Так работает:
var doc:IHTMLDocument2;
body:IHTMLElement;
s:widestring;
sl:TStringList;
begin
Doc:=WebBrowser1.Document as IHTMLDocument2;
Body:=Doc.Body;
s:=Body.innerText;
sl:=TStringList.Create;
sl.Add(s);
sl.SaveToFile("a.txt");
sl.Destroy;
end;
← →
Кулюкин Олег (2003-10-24 14:30) [44]
> Basilio © (24.10.03 14:25) [43]
> Тогда TWebBrowser не будет работать в принципе.
Я знаю :)
← →
bis (2003-10-24 14:35) [45]Reindeer Moss Eater © & Кулюкин Олег ©
Ну вот, все равно ведь переехали, к чему огрызаться-то было
← →
Reindeer Moss Eater (2003-10-24 14:38) [46]Мы переехали?
Надеюсь не тебя и не пополам?
← →
Vlad (2003-10-24 14:41) [47]
> bis © (24.10.03 14:35) [45]
> Reindeer Moss Eater © & Кулюкин Олег ©
> Ну вот, все равно ведь переехали, к чему огрызаться-то было
1) Что-то не заметно что вы переехали. В соседней ветке треп до сих пор продолжаете.
2) Зачем вобще переезжать, вам что-то тут не нравится ? Или обидел кто ?
← →
Style (2003-10-24 14:45) [48]Или вот так
var
str: TStringList;
begin
str:= TStringList.Create();
try
str.Add(WebBrowser1.OleObject.Document.body.InnerText);
str.SaveToFile("c:\text.txt");
finally
str.free;
end;
← →
sapsi (2003-10-24 16:16) [49]2 style Работает ли это (WebBrowser1.OleObject.Document.body.InnerText) в Дельфи 5?
← →
Style (2003-10-24 16:24) [50]sapsi
проверял в Delphi 5
← →
sapsi (2003-10-24 16:29) [51]Странно, у меня access violation на этой строке.
Ну ок, нашел статью
http://delphi.vitpc.com/mastering/tweb.htm, разберусь сам.
Спасибо.
← →
Style (2003-10-24 16:33) [52]sapsi
Сначала нужно сделать Navigate
var
_URL, Flags, TargetFrameName, PostData, Headers: Olevariant;
begin
_URL := " http://hch.ru";
Flags := 0; TargetFrameName := 0; Postdata := 0; Headers := 0;
WebBrowser1.Navigate2(_URL, Flags, TargetFrameName, PostData, Headers);
← →
Reindeer Moss Eater (2003-10-24 16:34) [53]Будет буря негодования, но все же.
В Делфи "ЭТО" никогда не работало.
По той причине, что работает "ЭТО" в коде БГ.
А из D идет только вызов.
access violation потому что не сделан navigate и документа просто нет.
А с IE6 это не работает потому что не поддерживается самим IE, а не Delphi пятым шестым или десятым.
← →
Style (2003-10-24 16:37) [54]Так мы попадаем как бы JavaScript
WebBrowser1.OleObject.Document.
Смотри хелпу по Яве
← →
Reindeer Moss Eater (2003-10-24 16:40) [55]Style ©
А в чем связь между Java и JavaScript?
Ну кроме одинаковых букв конечно.
← →
sapsi (2003-10-24 16:42) [56]navigate как раз сделан
← →
Style (2003-10-24 16:43) [57]Style ©
Ну сам синтаксис одинаковый :)
А ваще есть предположение что они как то связаны с OLE ;)
← →
Reindeer Moss Eater (2003-10-24 16:44) [58]navigate как раз сделан
Тогда WebBrowser1 = nil;
← →
Style (2003-10-24 16:48) [59]sapsi
Почему тогда у меня работает??
procedure TForm1.Button1Click(Sender: TObject);
var
_URL, Flags, TargetFrameName, PostData, Headers: Olevariant;
begin
_URL := " http://hch.ru";
Flags := 0; TargetFrameName := 0; Postdata := 0; Headers := 0;
WebBrowser1.Navigate2(_URL, Flags, TargetFrameName, PostData, Headers);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
str: TStringList;
begin
str:= TStringList.Create();
try
str.Add(WebBrowser1.OleObject.Document.body.InnerText);
str.SaveToFile("c:\text.txt");
finally
str.free;
end;
end;
← →
sapsi (2003-10-27 10:15) [60]2 style
Спасибо, у меня так тоже работает (именно WebBrowser1.Navigate2)
А почему нельзя сделать сохранение, которое делается по нажатию кнопки, например на onnavigatecomplete?
Страницы: 1 2 вся ветка
Текущий архив: 2003.11.17;
Скачать: CL | DM;
Память: 0.59 MB
Время: 0.013 c