|
Вопрос # 4 756/ вопрос открыт / |
|
Здравствуйте, эксперты! Пытаюсь сделать докачку в IDHTTP . но почемуто файл начинает качаться сначала... подскажите в чём проблема.
Приложение: Переключить в обычный режим-
- function FileSizes(fileName : wideString) : Int64;
- var
- sr : TSearchRec;
- begin
- if FindFirst(fileName, faAnyFile, sr ) = 0 then
- result := Int64(sr.FindData.nFileSizeHigh) shl Int64(32) + Int64(sr.FindData.nFileSizeLow)
- else
- result := -1;
-
- FindClose(sr) ;
- end;
-
- procedure TDownLoader.Execute;
- var
- RestartPos: DWORD;
- rcvrdata, temp1: TFileStream;
- begin
- try
- try
- if FileExists(Form1.edt2.text) then
- begin
- LoadedSz:= FileSizes(Form1.edt2.text);
- rcvrdata:=TFileStream.Create(Form1.edt2.text,fmOpenReadWrite);
- rcvrdata.Seek(LoadedSz, soBeginning);
- Form1.idHttp1.Response.ContentRangeStart:= LoadedSz;
- end
- else
- begin
- rcvrdata:=TFileStream.Create(Form1.edt2.text,fmCreate);
- end;
- Form1.idHttp1.Get(Form1.edt1.text, rcvrdata);
- except
- end;
-
- finally
- rcvrdata.Free;
- end;
- end;
-
-
 |
Вопрос задал: eclipse (статус: Посетитель)
Вопрос отправлен: 22 ноября 2010, 20:00
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, eclipse!
Все реально. Нужно просто правильно заполнить запрос. У idhttp есть свойство request, которое хранит различные параметры запроса. У него есть подсвойство range. Это поле строковое и в нем нужно указать, что скачать. Формат такой "начальный_байт-конечный_байт". Например
IdHttp1.Request.range := '1-100'; // с первого по 100 байт
IdHttp1.Request.range := '1000-'; // с 1000 байта и до конца
Так как файл на диске уже есть, то посчитать, откудова качать, не сложно.
вот тут http://pda.delphimaster.net/?id=1274640351&n=18&p=1 даже примерчик есть:)
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 22 ноября 2010, 20:47
Оценка за ответ: 5
Комментарий к оценке: В ответе все верно.
|
Мини-форум вопроса
Всего сообщений: 24; последнее сообщение — 25 ноября 2010, 18:11; участников в обсуждении: 3.
Страницы: [« Предыдущая] [1] [2]
|
Вадим К (статус: Академик), 25 ноября 2010, 16:42 [#21]:
Можно наверно и оценку за ответ поставить?
Галочка "подтверждения прочтения" - вселенское зло.
|
|
eclipse (статус: Посетитель), 25 ноября 2010, 17:44 [#22]:
К стати в сети воПШЭ нифига нет про эту фишку с прогрессбаром... заметили? у всех такая же история что и у меня была.
|
|
Вадим К (статус: Академик), 25 ноября 2010, 17:48 [#23]:
а можно не ругаться?
Наверное потому, что обычно никто ее не делает.
А те кто делает, хранит как зеницу ока.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
eclipse (статус: Посетитель), 25 ноября 2010, 18:11 [#24]:
К стати насчёт хранит точно! Как всегда доходит до самого главного и всё... тут же никто ничто не знает.
Ха! так мож стоит удалить эти диалоги
|
Страницы: [« Предыдущая] [1] [2]
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|