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

Вниз

Организовать в проекте скачивание файлов по принципу работы Reget   Найти похожие ветки 

 
allrussia   (2006-06-05 11:45) [0]

Вопрос в следующем:

есть процедура закачки файла, допустим URLDownload (URL: string)
или компонент WinHTTP (utilmind) и т.п. и процедура WinHTTP.Get... и .т.д.
работает она в отдельном потоке (не ругайте, не знаю как правильно сформулировать)

в общем если код будет выглядеть так:

begin
WinHTTP.GEt (URL);
Showmessage ("");
end


то после запуска сразу вылетит сообщение

Так вот, а нужно дождаться завершения первой команды а потом показать сообщение.

В Reget (или в аналогах) закачки могут закачиваться друг за другом, т.е. если мне надо скачать 100 файлов

я пишу

типа for i:=0 to 99 do WinHTTP.Get (URL+inttostr(i))

у меня срабатывает только 1 закачка, а нужно чтобы все друг за другом закачались и при этом форма не тормозила

В общем: как реализовать скачку файла в отдельном потоке, дождаться завершения, начать закачку следующего, и .т.д., и чтоб форма не тормозила вообще (как в Регет), или компонент посоветуйте, пожалуйста
я думаю мастерам это раз плюнуть

Спасибо


 
Dmitrij_K   (2006-06-05 12:37) [1]

Отправил на твою почту тестовый проект. Пробуй


 
learner ©   (2006-06-05 13:25) [2]

Dmitrij_K   (05.06.06 12:37) [1]
А мне не могг бы отправить ? Спасибо.


 
Dmitrij_K   (2006-06-05 13:42) [3]

http://up-file.com/download/b97cfd815613/Multi-Thread.rar.html


 
allrussia   (2006-06-05 15:04) [4]

Dmitrij_K

спасибо, не подскажешь как правильно использовать твой проект

пока пробовал AddThread.IdHTTP.Get("http://...);

но форма при этом зависает

и откуда брать статистику сколько скачалось

и еще ошибку выдает  в Utread.pas  на
FIdHTTP.ConnectTimeout  := 60000;


 
Dmitrij_K   (2006-06-05 15:15) [5]

Это только тест многопоточности.
На форме расположено 4 мемки
в первой мемке очередь на скачивания
например
http://www.delphimaster.ru/cgi-bin/forum.pl?n=0
http://www.delphimaster.ru/cgi-bin/forum.pl?n=18
http://www.delphimaster.ru/cgi-bin/forum.pl?n=1
http://www.delphimaster.ru/cgi-bin/forum.pl?n=5

жмешь на кнопку
программа запускает потоки (кол-во ThreadCount)
в memo2 показывает что качается
в 3 - что скачаловь
4 - что не скачалось
У меня вместо мемок в проекте StringList
При завершении скачивания срабатывает событие FinishEventProc в переменной mem (TMemoryStream) содержится то что скачалось
И пока в мемо1 есть строки программа будет скачивать их.


 
allrussia   (2006-06-05 15:58) [6]

Dmitrij_K

мне не совсем это подходит

моя задача вот:
код типа

begin
HTTP.Get (URL1);
HTTP.Get (URL2);
HTTP.Get (URL3);
Showmessage ("Complete")
end;
или тоже самое но в цикле

при этом чтоб форма не тормозила и было событие onProgress и onComplete

а то что ты предлагаешь я могу и так сделать с помощью компонента WinHTTP


 
Dmitrij_K   (2006-06-05 16:18) [7]

Ну извени....
PS
Я не знаю что такое WinHTTP/ Там что нет события прогресса и завершения скачивания?
Может подойдет связка IdHTTP + AntiFrize , форма будет подвисать но не смертельно


 
allrussia   (2006-06-05 16:55) [8]

Dmitrij_K

нет к тебе претензий нет :) и не может быть спасибо за помощь! :beer

представляешь я совершенно случайно сейчас обнаружил компонент который делает именно ТО, что нужно называется

TipHTTPClient из пакета TurboPower Internet Professional
метод GetWait

...
for i:=1 to 50 do if can = false then
 ipHTTPClient1.GetWait (URL+inttostr(i));
if can = false then Showmessage ("Все успешно скачалось!")
...

...
can:=true;
ipHTTPClient1.Cancel
...

и прогресс есть + завершение и ErrorCodes

специально для тебя даю ссылку правда весит много 16 мб
http://slil.ru/22811567



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.011 c
15-1149145505
Gorlum
2006-06-01 11:05
2006.06.25
ISA-сервер


2-1149772292
ALe_x
2006-06-08 17:11
2006.06.25
размер файла


1-1147878191
Yr2
2006-05-17 19:03
2006.06.25
При доступе к БД из NT-сервиса русские буквы в виде "иероглифов"


4-1143231811
Delphi_is_cool
2006-03-24 23:23
2006.06.25
Как изменить цвет шрифта ? (Static)


15-1148583076
Аноним2000
2006-05-25 22:51
2006.06.25
Как получить ответ от Com-порта?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский