Главная страница
    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.044 c
14-1105112746
vecna
2005-01-07 18:45
2005.01.23
Рождество.... духи....


8-1097601258
TwisteR
2004-10-12 21:14
2005.01.23
Графика в TRichEdit...


1-1105007313
Федюлин Григорий
2005-01-06 13:28
2005.01.23
И ещё одна ощибка...


1-1105452981
SomeOneElse
2005-01-11 17:16
2005.01.23
Кнопки на TToolBar


1-1104995714
Stanislav
2005-01-06 10:15
2005.01.23
Форма из 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
Английский Французский Немецкий Итальянский Португальский Русский Испанский