Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.61 MB
Время: 0.033 c
14-56843
VID
2003-10-28 13:00
2003.11.17
Админинг Windows 2000 (лок. машина)


8-56776
esidenko
2003-07-21 17:09
2003.11.17
Кто-нибудь работал с видеоформатом


14-56897
Сатир
2003-10-25 18:14
2003.11.17
Воспроизведение анимированных gif-ов на делфийской форме


6-56794
ashka
2003-09-20 16:06
2003.11.17
помогите прощу вас!!!!


4-56950
shuba
2003-09-22 16:21
2003.11.17
Запуск процедуры из чужой программы