Форум программистов, компьютерный форум, киберфорум
Delphi: Сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
1 / 1 / 1
Регистрация: 20.03.2013
Сообщений: 80
1

URLDownloadToFile возращает неверное значение

17.06.2014, 23:41. Показов 3852. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
URLDownloadToFile возращает неверное значение или я где-то не вижу свою ошибку...

Помогите свежими мозгами найти...

есть код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
URLDownloadToFile (nil,'http://сайт.../ver.txt','ver.txt', 0, nil);
assignFile(f,'ver.txt');
Reset(f);
ReadLn(f,S);
CloseFile(f);
MessageBox(handle, PChar('Версия: '+S), PChar('UPDATE'),(MB_OK+MB_ICONQUESTION));
 
if version <> StrToInt(s) then
begin
MessageBox(handle, PChar('Доступна новая версия: '+S), PChar('UPDATE'),(MB_OK+MB_ICONQUESTION));
UpdateP();
end;
DeleteFile('ver.txt');
На хост перезалил файл ver.txt с значением 2... (до этого был 1).
При запуске программы версию выдает 1.

Но зашел через сайт - значение = 2...

Перед нажатием на кнопку "ОК" в МСДЖБоксе открыл файл ver.txt... Там стоит значение 1, то есть проблема в загрузке файла...

Добавлено через 2 минуты
Менял значения на другие, всё равно возращает 1

Добавлено через 17 минут
Проблема решилась, изменением имени файла... Но почему такое произошло хз...
Да когда-то было и такое:
Сделал через URLDownloadToFile скачку трека.mp3... Скачало всё гуд...
Но позже я отключил интернет, и программа все равно качала этот трек.mp3 причем байт в байт...
Удалял его, искал на компе не нашол... Как-то загадочно. Интернета нету, а трек есть. Откуда оно его качает? Странно все это...

Добавлено через 4 минуты
Переименовал обратно в ver.txt - возращает 1, хотя там значение = 24123, что за дела?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.06.2014, 23:41
Ответы с готовыми решениями:

QByteArray::at возращает отрицательное значение
У меня есть массив байтов. Пишу простой код. QFile f(fileName); if...

Функция возращает значение undefined
Здраствуйте форумчане! У меня возникла следующая проблема: я описал функцию checkNickName которая...

Неверное значение
Имеется такой кусок кода: if (second_menu == 0) main_menu(); // главное меню else...

Неверное значение свойства
Есть ComboBox, в который нужно ДОБАВИТЬ элемент, равный значению переменной SH если он НЕ повторяет...

3
157 / 300 / 47
Регистрация: 14.08.2012
Сообщений: 2,578
18.06.2014, 09:55 2
Цитата Сообщение от DarkPower Посмотреть сообщение
Проблема решилась, изменением имени файла... Но почему такое произошло хз...
Да когда-то было и такое:
Сделал через URLDownloadToFile скачку трека.mp3... Скачало всё гуд...
Но позже я отключил интернет, и программа все равно качала этот трек.mp3 причем байт в байт...
Удалял его, искал на компе не нашол... Как-то загадочно. Интернета нету, а трек есть. Откуда оно его качает? Странно все это...
Возможно, функция закачал файл в кэш или временные файлы(Временный файлы Windows, Временный файлы пользователя, Папка Temp) и от туда к тебе. Может файл был всё ещё в памяти(если качал через поток, то его надо ещё очищать и уничтожать). И дествительно странно. Обычно лучше использовать WinInet:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
uses Wininet;
 
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), NTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  try
    hURL := InternetOpenURL(hSession, PChar(fileURL), nil,0,0,0);
    try
      AssignFile(f, FileName);
      Rewrite(f,1);
      repeat
        InternetReadFile(hURL, @Buffer,
        SizeOf(Buffer), BufferLen);
        BlockWrite(f, Buffer, BufferLen);
      until
        BufferLen = 0;
      CloseFile(f);
      Result:=True;
    finally
      InternetCloseHandle(hURL);
    end;
  finally
    InternetCloseHandle(hSession);
  end;
end;
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32977 / 21288 / 8175
Регистрация: 22.10.2011
Сообщений: 36,565
Записей в блоге: 8
18.06.2014, 10:37 3
DarkPower, во-первых, не "URLDownloadToFile возращает неверное значение", а "URLDownloadToFile скачивает не тот файл". Потому что значение, которое возвращает функция URLDownloadToFile ты вообще не получаешь и не обрабатываешь никак.

А скачивает не то - потому что перед вызовом URLDownloadToFile надо еще вызвать DeleteUrlCacheEntry, иначе содержимое будет скопировано из кэша, а не из Интернета.

Цитата Сообщение от саша40 Посмотреть сообщение
Обычно лучше использовать WinInet:
Не надо давать глупых советов. Хотя у тебя обычно они и получаются...
1
157 / 300 / 47
Регистрация: 14.08.2012
Сообщений: 2,578
18.06.2014, 10:47 4
Цитата Сообщение от UI Посмотреть сообщение
Не надо давать глупых советов. Хотя у тебя обычно они и получаются...
А че в нем глупого? Автору надо решение проблемы, я предложил радикальный способ. Такой способ меня не подводил.
0
18.06.2014, 10:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.06.2014, 10:47
Помогаю со студенческими работами здесь

Неверное значение клавиш Fn
Добрый день, уважаемые форумчане. Столкнулся с такой проблемой: Ноутбук PackardBell EN TS-11HR....

Неверное значение переменной
В другом скрипте значение checkUp равно true. Почему если присваивать значение переменной chUp в...

Функция возвращает неверное значение
Даже не знаю как вопрос правильно назвать. Вот вкратце такие конструкции. При загрузке документа...

Неверное значение в переменной $_SESSION
Всем добрый день! На сайте, с которым я разбираюсь реализован функционал с обратной связью. Для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru