Как скачать от проги из инета ~ по 10Кб от начала и конца файла?

KISSA

Сабж.
Вирус в своё время инсталятор похерил, а после лечения, как понял, там где-то пара байтов изменилась где-то в начале или в конце.

dgaf

начать скачивать и остановить
создать файл длиной filesize-10k и докачать

KISSA

А прогой какой лучше это сделать?

dgaf

dd и wget

KISSA

Надеюсь это под виндой?

dgaf

в первом случае поставить ограничение на скорость скачивания

KISSA

создать файл длиной filesize-10k
А как это сделать?

dgaf

X=`echo "$FILESIZE/512-20"|bc`
dd if=/dev/zero of=file count=$X

KISSA

Я по енохиански не понимаю.

stm5643616

Этот дельфийский код считывает кусочками по 1024 байта. Начало понятно как считать, а про хвостик надо подумать, может сообразишь.

function DownloadFile(const FileURL, FileName: string): Cardinal;
// downloads file from FileURL to FileName
var
hSession, HFILE: HInternet;
Buffer: array[1..1024] of Byte;
BufferLen, FSize: LongWord;
f: file;
begin
Result := 0;
hSession := InternetOpen('STEROID Download',
INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
if Assigned(hSession) then
begin
HFILE := InternetOpenURL(hSession, PChar(FileURL nil, 0,
INTERNET_FLAG_RELOAD, 0);
if Assigned(HFILE) then
begin
AssignFile(f, FileName);
Rewrite(f, 1);
FSize := 0;
repeat
InternetReadFile(HFILE, @Buffer, SizeOf(Buffer BufferLen);
BlockWrite(f, Buffer, BufferLen);
FSize := FSize + BufferLen;
until (BufferLen = 0);
CloseFile(f);
Result := FSize;
InternetCloseHandle(HFILE);
end;
InternetCloseHandle(hSession);
end;
end;

durka82

Ставь любую прогу, которая умеет закачивать (Download Master, например).
И начни закачку этого файла.
Как только нужный тебе кусок скачается, жми паузу.
Если хочешь еще и трафик поэкономить - выставь закачку в один поток и скорость поменьше

Vladislav177Rus

Используй perl|php и параметр Range HTTP-заголовка
Оставить комментарий
Имя или ник:
Комментарий: