Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Скачка файлов... + except

10K
22 октября 2009 года
In0stRAnez
66 / / 16.02.2008
Собственно вот функция которая даёт возможность скачать файл из интернета, проблема в том что я не знаю как правильно вставить сюда обработчик ошибок... дело в том что вылетает ошибочка и убивается приложение если я пытаюсь скачать файлик с инета а сетевые подключения отключены...
Код:
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
try
  Result:=False;
  sAppName := ExtractFileName(Application.ExeName);
  hSession := InternetOpen(PChar(sAppName),
  INTERNET_OPEN_TYPE_PRECONFIG,
  nil, nil, 0);
  hURL := InternetOpenURL(hSession,
  PChar(fileURL),
  nil,0,0,0);
    try
     AssignFile(f, FileName);
     Rewrite(f,1);
       repeat
         InternetReadFile(hURL, @Buffer,
         SizeOf(Buffer), BufferLen);
[COLOR="Red"]         BlockWrite(f, Buffer, BufferLen)[/COLOR]
       until BufferLen = 0;
             CloseFile(f);
             Result:=True;

      finally
             InternetCloseHandle(hURL)
      end
      finally
             InternetCloseHandle(hSession)
end;
end;

function GetWindowsFolder:string;
var p:PChar;
begin
GetMem(p, MAX_PATH);
result:='';
if GetWindowsDirectory(p, MAX_PATH)>0 then   result:=string(p);
FreeMem(p);
end;
32K
22 октября 2009 года
schursin
3 / / 06.11.2007
А не из IDE пробовали запустить? :) просто EXE...
10K
22 октября 2009 года
In0stRAnez
66 / / 16.02.2008
пробывали, ошибка конечно не вылетает, но приложение умирает..
303
22 октября 2009 года
makbeth
1.0K / / 25.11.2004
Что за ошибка? Где, собственно, ее текст? Почему не проверяешь результат выполнения InternetReadFile? Почему не проверяешь BufferLen на 0 перед тем, как записать в файл?
И нафига, в конце концов, до сих пор используешь устаревшие Assign/Rewrite/BlockWrite?
Короче, незачет :(
6
23 октября 2009 года
George
4.1K / / 05.01.2007
автор, посмотри на idHTTP. Он православнее того что ты понаделал. :)
а вообще то отладка рулит, уже давно мог бы выяснить где вылетает ошибка и приделать все необходимые проверки
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог