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

Вниз

WIN32_FIND_DATA (большой размер файла)   Найти похожие ветки 

 
Sun bittern ©   (2005-01-04 20:05) [0]

Доброго вечера!

var
FSize: Int64;
WinFindData: PWin32FindData;

nFileSizeHigh
High-order DWORD value of the file size, in bytes. This value is zero unless the file size is greater than MAXDWORD. The size of the file is equal to (nFileSizeHigh * (MAXDWORD+1)) + nFileSizeLow.

Так не нравится:
FSize := (WinFindData^.nFileSizeHigh * (High(DWORD) + 1)) + WinFindData^.nFileSizeLow;

А так в самый раз:
FSize := (WinFindData^.nFileSizeHigh * High(DWORD)) + WinFindData^.nFileSizeLow;

Т.е. не дает мне единичку прибавить :( : MAXDWORD+1
Хотя High(Int64) корректно обрабатывается.

Можно конечено и так:
A := High(DWORD);
FSize := (WinFindData^.nFileSizeHigh * (A + 1)) + WinFindData^.nFileSizeLow;

Просто интересно стало, почему способ выше не канает?


 
ламер ©   (2005-01-04 20:17) [1]

может, (Int64(High(DWord)) + 1)?


 
begin...end ©   (2005-01-04 20:18) [2]

> Sun bittern ©   (04.01.05 20:05)
Дело в переполнении.

Попробуйте так:

FSize := (WinFindData^.nFileSizeHigh * (Int64(High(DWORD)) + 1)) + WinFindData^.nFileSizeLow


 
GuAV ©   (2005-01-04 20:19) [3]

Int64Rec(I).Hi
Int64Rec(I).Lo


 
Sun bittern ©   (2005-01-04 20:25) [4]

Int64(High(DWORD)) + 1

Ага так идет. Но ведь может ведь результат вернуть High(Int64) и почему с переполнением выпендривается? Проблема решена :)


 
begin...end ©   (2005-01-04 20:28) [5]

> [4] Sun bittern ©   (04.01.05 20:25)

> Но ведь может ведь результат вернуть High(Int64) и почему
> с переполнением выпендривается?

Не понял вопроса.


 
ламер ©   (2005-01-04 20:32) [6]

Sun bittern ©   (05.01.04 20:25) [4]

In general, arithmetic operations on integers return a value of type Integer—which, in its current implementation, is equivalent to the 32-bit Longint. Operations return a value of type Int64 only when performed on an Int64 operand.


 
Sun bittern ©   (2005-01-04 20:52) [7]

Теперь ясно :)



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

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

Наверх




Память: 0.45 MB
Время: 0.036 c
14-1104827977
peypivo
2005-01-04 11:39
2005.01.23
GPRS и компьютер


4-1101974919
Андрюша
2004-12-02 11:08
2005.01.23
Как можно отловить системные клавиши?


3-1103636653
Guitar
2004-12-21 16:44
2005.01.23
Вернуть параметры из хранимой процедуры.


4-1102087680
sashas
2004-12-03 18:28
2005.01.23
Переименовать окно


6-1099332787
oleg_SYS
2004-11-01 21:13
2005.01.23
Indy & SSL





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