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

Вниз

FTP индикация закачки больших файлов   Найти похожие ветки 

 
Real ©   (2008-04-07 15:26) [0]

Использую NMFTP для закачки файлов на сервер. Если файл больше 2 ГБ, то наблюдается глюк индикации: процент больше 250 и идет вниз :) Код, в обработчкике отправки очередного пакета (и расчета прогресса в процентах такой):

procedure TFMain.FTPPacketSent(Sender: TObject);
var
 sent_kb,total_kb: int64;
 r: Extended;
 pr: byte;
begin
 sent_kb:=Trunc(FTP.BytesSent/1024);
 total_kb:=Trunc(FTP.BytesTotal/1024);
 r:=(sent_kb*100)/total_kb;
 pr:=Trunc(r);
 Application.Title:="Upload - "+IntToStr(pr)+"%";
 FProcess.Progress.Position:=pr;
end;


Не могу понять, с чем связан глюк. На файлах меньше 2ГБ - все ок. Может быть компонент не расчитан на такие объемные файлы (или внутренный числовой тип ограничен) и отсюда ошибки? Кто сталкивался с таким?


 
Reindeer Moss Eater ©   (2008-04-07 15:31) [1]

где-то есть intеger. В нем и косяк.


 
Reindeer Moss Eater ©   (2008-04-07 15:35) [2]

проверь тип BytesTotal и BytesSent


 
Real ©   (2008-04-07 20:52) [3]

Гм... а у меня нету исходника nmftp.pas Само свойство в подсказке отображается как Integer (Delphi 6, а предельный размер на файл такой смешной :) Народ, у кого есть исходник модуля, закиньте плиз. Или может у кого есть DCU обновленной версии или вообще какой-нить продвинутый FTP-компонент по мотивам NMFTP (Indy не хотелось бы, софтина в активном использовании, новое тестирование начинать не хотелось бы, глюк только визуальный, сам upload от этого не страдает)


 
Reindeer Moss Eater ©   (2008-04-07 21:03) [4]

Так ведь и без исходников уже ясно, что там integer.


 
Reindeer Moss Eater ©   (2008-04-07 21:05) [5]

Делай подпорку сбоку.
Если свойство имеет отрицательное значение, приводи его к беззнаковому.


 
Real ©   (2008-04-07 22:43) [6]


> Так ведь и без исходников уже ясно, что там integer.

Исходник нужен для перекомпиляции с int64


 
Reindeer Moss Eater ©   (2008-04-07 23:39) [7]

глюк только визуальный, сам upload от этого не страдает)

var
i : integer; pc : pcardinal;
begin
i := 3000000000;
pc := @i;
ShowMessage(IntToStr(i) + " " + IntToStr(pc^));


 
Сергей М. ©   (2008-04-08 09:14) [8]


> Исходник нужен для перекомпиляции с int64


У Борланда спроси.


 
clickmaker ©   (2008-04-08 11:56) [9]

в Indy 10 (а может уже и в 9) есть поддержка 64-битных размеров


 
Real ©   (2008-04-08 19:41) [10]


> в Indy 10 (а может уже и в 9) есть поддержка 64-битных размеров

Не хочется на Indy... Ну наверное придется. А как узнать версию? В Delphi 6 какая версия Indy никто не в курсе?


 
Real ©   (2008-04-08 19:45) [11]


> var
> i : integer; pc : pcardinal;
> begin
> i := 3000000000;
> pc := @i;
> ShowMessage(IntToStr(i) + " " + IntToStr(pc^));

Гм, интересная мысль, надо затестить! А почему предлагаешь именно cardinal? int64 ведь круче будет? (а то завтра террабайтовые размеры пойдут еще вдруг :)


 
Reindeer Moss Eater ©   (2008-04-08 21:41) [12]

ShowMessage(IntToStr(SizeOf(Integer)) + " " + IntToStr(SizeOf(Cardinal)) + IntToStr(SizeOf(int64)) )

ку?


 
clickmaker ©   (2008-04-09 10:39) [13]


> В Delphi 6 какая версия Indy никто не в курсе?

а в принципе не важно. Можно качнуть с индейского сайта, да обновить
в Д7 вроде 9


 
Real ©   (2008-04-21 02:06) [14]


Reindeer Moss Eater

Спасибо за совет! Работает!!!



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

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

Наверх




Память: 0.47 MB
Время: 0.04 c
1-1220597243
Mephala
2008-09-05 10:47
2009.10.25
Какой выбрать разделитель при передаче параметров


15-1250784466
Пит
2009-08-20 20:07
2009.10.25
Игра меньше тормозит при большем разрешении


2-1251201731
Andy BitOff
2009-08-25 16:02
2009.10.25
Почему не срабатывает ShellExecute и чем это заменить?


3-1228665526
Guest
2008-12-07 18:58
2009.10.25
DBGrid по образу и подобию инспектора объектов.


2-1251091205
belmol
2009-08-24 09:20
2009.10.25
directx





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский