Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.06.07;
Скачать: CL | DM;

Вниз

InternetReadFile + BlockWrite + ProgressBar , помогите ...   Найти похожие ветки 

 
IgorT ©   (2008-02-18 23:21) [0]

Вобщем, есть такая функция для скачивания файлов из инета, но никак не могу дойти как прикрепить к ней прогресс бар ?(прикрепить то я прикреплю, надо чтобы он коректно работал, ато у меня не получается - разов по 20 проходит :) , неправильный код об прогресе я не вставлял... )

Вот код самой процедуры :


function GetInetFile
(const fileURL, FileName: String): boolean;
const BufferSize = 1024;
var
 hSession, hURL: HInternet;
 Buffer: array[1..BufferSize] of Byte;
 BufferLen: DWORD;
 f: File;
 sAppName: string;

begin
Result:=False;
sAppName := ExtractFileName(Application.ExeName);
hSession := InternetOpen(PChar(sAppName),
               INTERNET_OPEN_TYPE_PRECONFIG,
              nil, nil, 0);

try
 hURL := InternetOpenURL(hSession,
           PChar(fileURL),
           nil,0,0,0);
 try
  AssignFile(f, FileName);
  Rewrite(f,1);
  repeat
  Application.ProcessMessages;
   if u=true then
     begin
     CloseFile(f);
     DeleteFile("new.ini");
     DeleteFile("new.rar");
     Clipboard.Clear;
     Result:=False;
     exit;
     end;

   InternetReadFile(hURL, @Buffer,
                    SizeOf(Buffer), BufferLen);
  BlockWrite(f, Buffer, BufferLen);
  until BufferLen = 0;
  CloseFile(f);
  Clipboard.Clear;
  Result:=True;
 finally
  InternetCloseHandle(hURL)
 end
finally
 InternetCloseHandle(hSession)
end
end;



 
Compiler ©   (2008-02-19 00:18) [1]

Перед скачиванием нужно наверно размер файла узнать.

dwBufferLen, dwIndex: DWORD;
dwBuffer: Pointer;
...
dwIndex  := 0;
dwBufferLen := 20;
HttpQueryInfo(URL, HTTP_QUERY_CONTENT_LENGTH, @dwBuffer, dwBufferLen, dwIndex)


Размер файла должен быть тут dwBuffer


 
IgorT ©   (2008-02-19 01:11) [2]

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


 
Сергей М. ©   (2008-02-19 09:52) [3]


> IgorT ©   (19.02.08 01:11) [2]

http://www.google.ru/search?aq=f&complete=1&hl=ru&newwindow=1&client=firefox-a&rls=org.mozilla%3Aru%3Aofficial&hs=b0g&q=Delphi+internetreadfile+progressbar&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=lang_ru


 
IgorT ©   (2008-02-20 21:15) [4]

Вопрос решен, решения здесь - http://forum.sources.ru/index.php?act=ST&f=14&t=223785



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

Текущий архив: 2009.06.07;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.004 c
2-1240486476
djkondakov
2009-04-23 15:34
2009.06.07
Программа подвисает при запуске цикла


6-1203515166
MonsterHell
2008-02-20 16:46
2009.06.07
Переопределение днс2


2-1240403308
dis12345
2009-04-22 16:28
2009.06.07
длинные названия колонок в StringGrid


15-1238632056
SPeller
2009-04-02 04:27
2009.06.07
Д2009


3-1221992597
DAdd
2008-09-21 14:23
2009.06.07
Ограничение длины строки





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