Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.11.17;
Скачать: [xml.tar.bz2];

Вниз

ПРосмотр 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.59 MB
Время: 0.016 c
1-56615
TrollXP
2003-11-05 18:29
2003.11.17
Ini files


3-56492
Vemer
2003-10-26 11:01
2003.11.17
(Не)Работа TQRExpr


1-56687
Ivolg
2003-11-07 17:08
2003.11.17
Компоненты как их грузить?


1-56596
RoLeX
2003-11-06 02:34
2003.11.17
Есть ли какой-нибудь тип переменной который больше Integer ??


3-56521
ss300
2003-10-27 17:09
2003.11.17
DateTime





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский