Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Закачка из интернета с помощью ВСВ, Закачка из интернета файла с помощью ВСВ 
:(
    Опции темы
Bima
Дата 16.11.2006, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 15.8.2006

Репутация: 2
Всего: 2



У всех стоит новая версия, а никто не хочет сказать, как ставили.
smile  smile 
 smile 
 smile 



--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
Bima
Дата 16.11.2006, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 15.8.2006

Репутация: 2
Всего: 2



после 3 попыток переустановки ВСВ, поставил Indy 9.0.17

Ставил так:
Снес старую версию
   1. Удалил из IDE пакет
   2. Удалил файлы из папки c:\Program Files\Borland\CBuilder6\Source\Indy
   3. пустил посик по маске *indy*.* в c:\Program Files\ и c:\windows и все удалил.

перезагрузился

распаковал архив дистрибутива в c:\Indy\Source\ (иначе возникают ошибки при выполнении батника)
Запустил Fullc6.bat
Запустил IDE и установил пакет dclIndy60.bpl из папки c:\Indy\С6
открыл в IDE Tools|Environment Options...|Library и посмотрел чтобы в library path стоял путь c:\Indy\С6
Перезагрузился

запускаю ВСВ и на форму ставлю кнопку, лабел и IdHTTP. 
на кнопку прописываю код:
Код

int filSize;
TFileStream *Receive = new TFileStream("c:\\Test.zip", fmCreate);
IdHTTP1->Get("http://www.biminc.narod.ru/Test.zip", Receive);
filSize = Receive->Size;
Label1->Caption=IntToStr(filSize);
delete Receive;


при компиляции мне ВСВ выводит сообщение:
[Linker Error] Unresolved external '__fastcall Idhttp::TIdHTTP::Get(System::AnsiString, const Classes::TStream *)' referenced from C:\AAA\UNIT1.OBJ

при использовании кода:
Код

 std::auto_ptr<TFileStream> Receive(new TFileStream("c:\\Test.zip", fmCreate));
 IdHTTP1->Get("http://bcdev.narod.ru/Download/Demotmpl_dll.zip", Receive.get());


выскакивает точно такая же ошибка smile

не могу понять, что я не так сделал


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
Bima
Дата 17.11.2006, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 15.8.2006

Репутация: 2
Всего: 2



После долгих мучений удалось все таки установить Indy9 на ВСВ5
ставлю код:
Код

int filSize;
TFileStream *Receive = new TFileStream("c:\\Test.zip", fmCreate);
IdHTTP1->Get("http://www.biminc.narod.ru/Test.zip", Receive);
filSize = Receive->Size;
Label1->Caption=IntToStr(filSize);
delete Receive;

или
Код

 std::auto_ptr<TFileStream> Receive(new TFileStream("c:\\Test.zip", fmCreate));
 IdHTTP1->Get("http://bcdev.narod.ru/Download/Demotmpl_dll.zip", Receive.get());

ничего не выходит.
пытаюсь поставить прокси, с этими кусками программы
Код

IdHTTP1->Request->ProxyServer="10.11.11.254";
IdHTTP1->Request->ProxyPort=3128;

программа выдает мне сообщение:



Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  Error.GIF 9,21 Kb


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
Romikgy
Дата 17.11.2006, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



имхо всетаки в 
Цитата(Bima @  17.11.2006,  07:20 Найти цитируемый пост)
 Indy9

надо юзать
Цитата(Romikgy @  14.11.2006,  11:18 Найти цитируемый пост)
IdHTTP1->ProxyParams->ProxyServer="10.11.11.254";IdHTTP1->ProxyParams->ProxyPort=3128;

попробуй


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Bima
Дата 17.11.2006, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 15.8.2006

Репутация: 2
Всего: 2



я прогнал smile
в прошлом сообщении неправильно написал, скопировал с прошлой ветки...
на самом деле в программе написано так:
Код

IdHTTP1->ProxyParams->ProxyServer="10.11.11.254";
IdHTTP1->ProxyParams->ProxyPort=3128;

а строчка IdHTTP1->Request->ProxyServer="10.11.11.254"; не компилируется



--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
dumb
Дата 17.11.2006, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 32
Всего: 158



Bima,
похоже, что таки не до конца установил... судя по всему, у тебя либа индейская не подключается...

вот список файлов индейских, сравни:
Код

\Borland\CBuilder6\Bin\dclIndy60.bpl

\Borland\CBuilder6\Lib\Debug\Indy60.lib
\Borland\CBuilder6\Lib\Debug\Indy.bpi    <-- это копия Indy60.bpi (иногда помогает:)
\Borland\CBuilder6\Lib\Debug\Indy60.bpi

\Borland\CBuilder6\Lib\Release\Indy60.lib
\Borland\CBuilder6\Lib\Release\Indy.bpi    <-- это копия Indy60.bpi (иногда помогает:)
\Borland\CBuilder6\Lib\Release\Indy60.bpi

\Borland\CBuilder6\Lib\Obj\Indy60.dcp
\Borland\CBuilder6\Lib\Obj\dclindy.dcp
\Borland\CBuilder6\Lib\Obj\dclindy.dcu
\Borland\CBuilder6\Lib\Obj\Id*.dcu
\Borland\CBuilder6\Lib\Obj\Id*.obj

\Borland\CBuilder6\Include\Vcl\Indy60.hpp
\Borland\CBuilder6\Include\Vcl\Id*.hpp


в Debug и Release я сложил, не парясь, одинаковые файлы, хотя, по идее, для дебага надо скомпилить, видимо, отдельно...

и еще: проверь свой .bpr на предмет упоминания там индейцев - может найдешь несоответствия какие. например, если не сделать копию Indy60.bpi=Indy60.bpi, то в старых проектах надо менять "Indy.bpi" на "Indy60.bpi"...
PM MAIL   Вверх
Bima
Дата 17.11.2006, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 15.8.2006

Репутация: 2
Всего: 2



простое копирование не помогло.
стало выдавать ошибку: [Linker Error] Fatal: Access violation.  Link terminated.
файлы сравнил.

когда в .bpr поправил несоответствие, файл скомпилировался, но скачать программно я файл так и не смог. при запуске программы создается файл, а потом идет ошибка. файл (который скачивается) остается пустым.


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
dumb
Дата 17.11.2006, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 32
Всего: 158



Цитата(Bima @  17.11.2006,  14:08 Найти цитируемый пост)
когда в .bpr поправил несоответствие, файл скомпилировался

ну, хоть обновились... smile

Цитата(Bima @  17.11.2006,  14:08 Найти цитируемый пост)
при запуске программы создается файл, а потом идет ошибка. файл (который скачивается) остается пустым.

ошибка какая? не телепаты ж...
PM MAIL   Вверх
Bima
Дата 17.11.2006, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 15.8.2006

Репутация: 2
Всего: 2



Я из дома вышел в сеть по dial-up.
Попробовал здесь свою программу, все работает, то есть и ту, что создал на ВСВ5 с инди9 и ту что создал на ВСВ6 с инди8.

Цитата

ошибка какая? не телепаты ж...

7 сообщений вверх, я там вложил файл (скриншот), там как раз показана, какая ошибка. Файл называется Error.gif (весит 9 кб).

Программу, которую пишу, нужна для работы, там выделенка стоит. Прокси ISA, как он настроен не знаю, но в предыдущих топиках рассказывал, какие программы там работают и с какими настройками.
Одно не могу понять, почему через проки невозможно скачать файл, а на dial-up все нормально работает?

Какие еще настройки можно поменять, что бы загрузить можно было файл? Теперь хоть одно понятно, что все дело в прокси и в его настройках


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
dumb
Дата 18.11.2006, 05:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 32
Всего: 158



для начала попробуй таки с авторизацией:
Код

  IdHTTP1->ProxyParams->ProxyUsername="...";
  IdHTTP1->ProxyParams->ProxyPassword="...";


и, кстати, попробуй добавить
Код

  IdHTTP1->HandleRedirects = true;


ps. всякие ослы да регеты юзают NTLM authentication.
pps. если уже ничего не помогает, то проще забить на индейцев и написать на апи(напр.WinHTTP)...

Добавлено @ 05:31 
в таких случаях народ обычно уже давно сравнивает логи сниффера от запросов IE и от Indy... smile
PM MAIL   Вверх
Bima
Дата 4.12.2006, 07:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 15.8.2006

Репутация: 2
Всего: 2



Я тут в командировке был и эту тему поддерживать не мог. сейчас попробовал еще раз с авторизацияей и с командой IdHTTP1->HandleRedirects = true;
не помогло smile
Цитата

pps. если уже ничего не помогает, то проще забить на индейцев и написать на апи(напр.WinHTTP)...

у кого нибудь есть пример скачивания файла путем применения API (WinHTTP) ???


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
dumb
Дата 4.12.2006, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 32
Всего: 158



самый бесхитростный метод:

Код

#include <urlmon.h>
#pragma comment(lib,"urlmon.lib")

void getfile()
{
  //...
  int retcode = URLDownloadToFile( NULL, "http://.../test.zip", "megatest.zip", 0, 0 );
  //...
}

PM MAIL   Вверх
Bima
Дата 5.12.2006, 07:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 15.8.2006

Репутация: 2
Всего: 2



клево, все заработало smile скачивается!!!
но сразу возникает вопрос, как узнать что файл скачался полностью???
мой код такой:
Код

int retcode;
retcode = URLDownloadToFile( NULL, myUrl.c_str(), MyFile.c_str(), 0, 0 );
Label1->Caption=IntToStr(retcode);

в переменные myUrl и MyFile записываю адрес файла и куда скачиваю соответственно.

при скачивании файла на Label1->Caption возвращается ноль.

Полазил по интернету, и нашел информацию о том, что пока файл не скачается программа замораживается на данном этапе. Как избежать подобного глюка? Не хотелось бы ждать несколько минут, пока скачивается файл, что бы окно прорисовалось.


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
dumb
Дата 5.12.2006, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 32
Всего: 158



Цитата(Bima @  5.12.2006,  07:32 Найти цитируемый пост)
Не хотелось бы ждать несколько минут, пока скачивается файл, что бы окно прорисовалось. 

сливать файл(вызывать URLDownloadToFile) в отдельном потоке. например, сделать производный от TThread(поиск по форуму) класс, где определить функцию Execute(в твоем случае состоящую только из вызова URLDownloadToFile) и сделать свойство, в которое ты запихаешь код ошибки.
PM MAIL   Вверх
Bima
Дата 5.12.2006, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 15.8.2006

Репутация: 2
Всего: 2



а когда загрузка закончилась???
в какой момент?


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
Страницы: (4) Все 1 2 [3] 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0683 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.