докачка файла

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Сообщение CoverStory » 17.02.2006 19:23:50

Всем доброго!!!

вопрос следующего характера хочу сделать докачку файлов в следующем случае.
Есть модемное соединение двух компов после соединения монтируется удаленный диск. С него копируется файл на комп. Способом описаным в мануале:

Program Example6;
{ Программа демонстрирует работу функций BlockRead и BlockWrite. }
Var Fin, fout : File;
NumRead,NumWritten : Word;
Buf : Array[1..2048] of Byte;
Total : Longint;
begin
Assign (Fin, ParamStr(1));
Assign (Fout,ParamStr(2));
Reset (Fin,1);
Rewrite (Fout,1);
Total:=0;
Repeat
BlockRead (Fin,buf,Sizeof(buf),NumRead);
BlockWrite (Fout,Buf,NumRead,NumWritten);
inc(Total,NumWritten);
Until (NumRead=0) or (NumWritten<>NumRead);
Write ('Скопировали ',Total,' байт из файла ',ParamStr(1));
Writeln (' в файл ',ParamStr(2));
Close(fin);
Close(fout);
end.


При обрыве связи файл придется копировать заново, а он весит не много ни мало 15 метров.

Как сделать так чтобы файл докачивался а не копировался заново.

Спасибо.
CoverStory
новенький
 
Сообщения: 95
Зарегистрирован: 09.02.2006 18:21:42
Откуда: Семипалатинск

Сообщение STAKANOV » 17.02.2006 20:01:25

надо узнать длинну уже имеющегося файла, а новый читать не с нулевой позиции (не с начала), а перейти на позицию соответвующую длинне и начать читать от туда

см. <a href='http://freepascal.ru/wiki/index.php/Seek' target='_blank'>Seek</a>
Аватара пользователя
STAKANOV
энтузиаст
 
Сообщения: 1069
Зарегистрирован: 14.05.2006 21:26:24
Откуда: Зеленоград

Сообщение CoverStory » 17.02.2006 20:25:05

Интересно а часть скачаного файла останется или сотрется?
CoverStory
новенький
 
Сообщения: 95
Зарегистрирован: 09.02.2006 18:21:42
Откуда: Семипалатинск

Сообщение STAKANOV » 17.02.2006 21:55:54

Интересно а часть скачаного файла останется или сотрется?

при желании останется ) надо просто добавлять

после окончания записи желательно проверить на целостность, например расчитав MD5
Аватара пользователя
STAKANOV
энтузиаст
 
Сообщения: 1069
Зарегистрирован: 14.05.2006 21:26:24
Откуда: Зеленоград

Сообщение SergKam » 20.02.2006 03:32:47

Может проще всетаки использовать нормальный сетевой протокол типа ftp http
и wget (есть под все системы)?
SergKam
постоялец
 
Сообщения: 251
Зарегистрирован: 16.11.2005 21:31:11
Откуда: Украина,Харьков

Сообщение CoverStory » 20.02.2006 10:06:21

wget вещица обалденная! Но она внешняя :( и ставить из-за этого ftp-сервак :(. хотя http сервак у меня стоит!
CoverStory
новенький
 
Сообщения: 95
Зарегистрирован: 09.02.2006 18:21:42
Откуда: Семипалатинск

Сообщение SergKam » 20.02.2006 23:25:26

ну прям так и СЕРВАК. есть куча мелких и легких(поддержиающих докачку).
А монтировать сетевой диск по твоему разумнее?

вместо wget можно использовать либу curl
мощьнейшая штука поддерживает кучу протоколов
докачку, прокси, ограничения скоросити, шифрование, тунели итп
<a href='http://curl.haxx.se' target='_blank'>http://curl.haxx.se</a>
или компонент из indy там помоему както тоже докачку можно указать
но неуверен
SergKam
постоялец
 
Сообщения: 251
Зарегистрирован: 16.11.2005 21:31:11
Откуда: Украина,Харьков

Сообщение CoverStory » 21.02.2006 14:24:14

curl вещь интересная надо поюзать. А вот насчет indy, можно посмотреть, но хотелось бы доки с примерами, или без примеров, а язык желательно русский можно и английский. Был на сайте <a href='http://www.indyproject.org' target='_blank'>http://www.indyproject.org</a> но пока описания не нашел!!!
CoverStory
новенький
 
Сообщения: 95
Зарегистрирован: 09.02.2006 18:21:42
Откуда: Семипалатинск

Сообщение CoverStory » 21.02.2006 17:26:54

В indy есть докачка но помоему только с FTP. Curl поддерживает докачку и также его можно встроить во free pascal, но как скачать с общей папки с его помощью. Я чего-то не понял? может объяснит кто?
CoverStory
новенький
 
Сообщения: 95
Зарегистрирован: 09.02.2006 18:21:42
Откуда: Семипалатинск

Сообщение SergKam » 22.02.2006 21:30:01

С "общей папки" никак. Потому как протокол smb дифективный сам по себе, поэтому ftp и предлагается.
SergKam
постоялец
 
Сообщения: 251
Зарегистрирован: 16.11.2005 21:31:11
Откуда: Украина,Харьков


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 61

Рейтинг@Mail.ru