Как юзать FindFirst , FindNext для файлов размер которых выходит за integer

Модераторы: Duncon, Naeel Maqsudov, Хыиуду, Игорь Акопян

namomelkor
Сообщения: 227
Зарегистрирован: 31 авг 2006, 13:11

12 мар 2007, 15:43

не помню как сдвигать и не понял как обойтись сомированием )
короче сделал так
temp:=sr.FindData.nFileSizeHigh*256;
temp:=temp*256;
temp:=temp*256;
temp:=temp*256;
sz:=temp+sr.FindData.nFileSizeLow;

и еще делфи почемуто не вычистяет выражение sr.FindData.nFileSizeHigh*256*256*256*256 пишет 0.
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

12 мар 2007, 15:55

&quot писал(а):sr.FindData.nFileSizeHigh*256*256*256*256
Dword * Dword * ... = DWord, естественно, что 0, ведь это больше 4G.
Ведь уже написали, как вычислять.
Через суммирование - SZ := High shl 32 + Low
It's a long way to the top if you wanna rock'n'roll
Аватара пользователя
LAngel
Сообщения: 277
Зарегистрирован: 30 мар 2005, 08:19
Откуда: Ульяновск
Контактная информация:

12 мар 2007, 16:00

somewhere писал(а):Dword * Dword * ... = DWord, естественно, что 0, ведь это больше 4G.
Ведь уже написали, как вычислять.
Через суммирование - SZ := High shl 32 + Low
High shl 32 = 0 :) ) ибо High - это DWORD.
надо Int64(High) shl + Low;
С уважением, Lost Angel...
Ответить