30 июня 2008

Почему C++ Builder сосет, а Delphi танцует

Ну как обычно это и бывает нужна функция.. очень простая, нужно
скачать страничк и результат поместить в переменную, ну или Memo.
Че делаем на C++ ?
Кладем компонент WebBrowser на форму, и передаем 2 обращения
1. Запрос к нужной стрнице
2. Чтение страшным образом всего хозяйства.
Это же можно сделать и на Дельфях, но у Builderа нет компонентов Indy
их надо ставить.
Примерный код на Delphi который пришелся бы впору и Builder:
var
Document: IHTMLDocument2;
begin
Document := WebBrowser1.Document as IHtmlDocument2;
if Document < > nil then
Memo1.Text := (Document.all.Item(NULL, 0) as IHTMLElement).OuterHTML;

Типа того работает и там и сям. У этого способа есть приемущество,
есть доступ к DOM.
Есть и недостаток: Компонент WebBrowser - слишком жирный и неуклюжий.
Впрочем работает отлично.

А теперь пример с Indy:
Кладем компонент на форму и
Memo1.Text:=idHTTP1.Get(http://ya.ru);
Все !
Что первый что и второй берут настройки системы, т.е. мы не зависим от
проксей, Прога фул портэбле.
и код всего в одну строчку.
Заголовков и дополнительной обработки мне не надо.
Поэтому все просто как на мази.


Видеочат рулетка