Главная страница
    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.003 c
15-1238739088
Patrick
2009-04-03 10:11
2009.06.07
Представление данных


3-1222067899
Клён новичок
2008-09-22 11:18
2009.06.07
Как подставить переменную в запрос?


15-1238166159
Azazello
2009-03-27 18:02
2009.06.07
Иконка приложения


2-1240486269
js2
2009-04-23 15:31
2009.06.07
Загрузка записей из таблицы БД


3-1222169341
Ega23
2008-09-23 15:29
2009.06.07
ODBC DSN с сохранением пароля





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