Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2003.04.17;
Скачать: [xml.tar.bz2];

Вниз

TKOLHTTP и TKOLFTP - скачка определенной части файла   Найти похожие ветки 

 
Vitalis   (2002-07-01 23:00) [0]

НАрод, нужна функция для FTP и HTTP, которая бы забирала определенную часть определенного удаленного файла и записывала его в поток. Я взял в роли прототипа функцию Get и вот что получилось:
procedure TKOLFtpClient.GetToStream(RemFile : String;{Удаленный файл} Where : PStream;{Поток, куда скачивать}Start,{Смещение с начала файла} Length{Длина скачки} : Integer);
begin
if RemFile = "" then exit;
if ftpStatus = ftpReady then begin
Size(RemFile);
ftpStatus := ftpGet;
OutStream := Where;
if fMainSock.Connected then begin
OpenData;
fDataSock.OnRead := OnDSBRead;
if SendStr("TYPE I") then begin
TotalRece := Start;
OutStream.Position := Start;
if SendStr("REST " + int2str(Start)) then begin
end;
SendStr("RETR " + RemFile);
end;
end else DoEvent(fOnFTPErr)
end else DoEvent(fOnFTPErr);
end;


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

Необходима аналогичная функция для TKOLHTTP, но там я вообще ничего не понял. Помогите люди добрые на мыло vox@smtp.ru


 
HekTo   (2002-07-01 23:26) [1]

Для ФТП, кажется, тебе придется это самому организовать - прервать прием, когда скачается требуемое количество байт информации. А для HTTP в заголовках есть такой:
Range: bytes=FromXXX-ToXXX, где FromXXX и ToXXX соответственно смещение начала и смещение конца запрашиваемого фрагмента.

А еще можно залезть на www.rfc.net и посмотреть спецификации протоколов FTP (RFC959) и HTTP/1.1 (RFC2068)...


 
HekTo   (2002-07-01 23:26) [2]

Для ФТП, кажется, тебе придется это самому организовать - прервать прием, когда скачается требуемое количество байт информации. А для HTTP в заголовках есть такой:
content-Range: bytes=FromXXX-ToXXX, где FromXXX и ToXXX соответственно смещение начала и смещение конца запрашиваемого фрагмента.

А еще можно залезть на www.rfc.net и посмотреть спецификации протоколов FTP (RFC959) и HTTP/1.1 (RFC2068)...


 
Vitalis   (2002-07-02 00:15) [3]

Спасибо. А для FTP где прерывать? в какой процедуре? в OnDSBRead?
Еще я не очень понял, зачем нужна TotalRece и функция Size()


 
Vitalis   (2002-07-02 01:13) [4]

И про TKOLHTTP - там заголовок Range: посылать в OnConn? после fSoc.SendString("Host: " + fAdr + #13#10); ?


 
BorisMor   (2002-07-02 16:29) [5]

Посмотри на странице Кладова
http://bonanzas.rinet.ru/rindex.htm
В разделе "Демо". Там есть примеры.



Страницы: 1 вся ветка

Форум: "KOL";
Текущий архив: 2003.04.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
14-54821
Opuhshii
2003-03-31 20:01
2003.04.17
Очень нехоршие люди!


14-54814
Nikolai_S
2003-03-29 11:59
2003.04.17
Создание ссылки на веб-сайт в справке


3-54510
Roman_kv
2003-03-31 15:34
2003.04.17
MySQL и Delphi?


1-54605
Max1111
2003-04-04 12:57
2003.04.17
Проблема с глобальным динамическим массивом4


14-54854
AlexanderSK
2003-04-01 17:17
2003.04.17
Как зарегистрировать Midas.dll из командной строки?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский