| 
| 
 | Вопрос # 5 981/ вопрос закрыт / | 
 |  Здравствуйте! Как программно узнать размер очень большого файла(свыше 5GB)? Стандартными методами, которые описаны в интернете значения получались отрицательными. Не я один, кто имеет такую проблему, и у них вопрос так и не решился. На одном форуме был ответ таков:фрагмент кода
 Только ничего я из этого не понял.... Помогите мне пожалуйста :)
 
|  |   Вопрос задал: Кудя (статус: Посетитель)Вопрос отправлен: 5 марта 2012, 20:33
 Состояние вопроса: закрыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: min@y™ Скопипастил из delphi works:
 function dwGetFileSize(Datei: String): Int64;
var
   SR: _WIN32_FIND_DATA;
   FileHandle: THandle;
const
   MaxLongWord : Int64 = 4294967296;
begin
 if FileExists(Datei)then begin
    FileHandle:= FindFirstFile(PChar(Datei), SR);
    result:= INT64((SR.nFileSizeHigh) * MaxLongWord + Sr.nFileSizeLow);
    Windows.FindClose(FileHandle);
 end else begin
   result := -1;
 end;
end;
|  | Ответ отправил: min@y™ (статус: Доктор наук)Время отправки: 5 марта 2012, 21:55
 
 |  
 Мини-форум вопросаВсего сообщений: 12; последнее сообщение — 8 марта 2012, 21:00; участников в обсуждении: 4. 
|   | min@y™ (статус: Доктор наук), 6 марта 2012, 08:22 [#2]: Цитата (Ерёмин А.А.): только код не сишный А какая разница? Один хрен, там сплошной WinAPI.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Кудя (статус: Посетитель), 6 марта 2012, 14:36 [#3]:...Попытаюсь на C++ перевести. Код прост, но умножая на MaxLongWord программа сможет прочесть размер очень большого файла? No logic or im noob   Think Different. (c) |  
|   | min@y™ (статус: Доктор наук), 6 марта 2012, 14:57 [#4]:Попробуй и узнаешь. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Кудя (статус: Посетитель), 8 марта 2012, 12:46 [#5]:Всё равно число то же, отрицательное =( Think Different. (c) |  
|   | min@y™ (статус: Доктор наук), 8 марта 2012, 13:01 [#6]: Цитата (Кудя): Всё равно число то же, отрицательное =(  Чему равно?
 Эт чож за файл такой, если 63-й знаковый разряд равен 1? Я таких числов не знаю...
   Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Кудя (статус: Посетитель), 8 марта 2012, 13:05 [#7]:-1073741824 размер файла = 7 GB, 7516192768 Byte
 Think Different. (c) |  
|   | min@y™ (статус: Доктор наук), 8 марта 2012, 13:47 [#8]:Переведи и то и другое в 16-ричную систему счисления и всё поймёшь. Я перевёл и всё понял. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Кудя (статус: Посетитель), 8 марта 2012, 14:05 [#9]:...ща найду как это сделать   Think Different. (c) |  
|   | Кудя (статус: Посетитель), 8 марта 2012, 15:03 [#10]:7516192768   ---   1C0000000 -1073741824  ---   FFC0000000
 я перевёл, но ничего схожего кроме ноликов не вижу)
 Think Different. (c) |  
|   | min@y™ (статус: Доктор наук), 8 марта 2012, 16:13 [#11]: Цитата (Кудя): я перевёл, но ничего схожего кроме ноликов не вижу)  ДА НЕУЖЕЛИ???!!!111
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | bugmenot (статус: 3-ий класс), 8 марта 2012, 21:00 [#12]: руками пусть работаетв двоичную пусть переводит, может дойдет
 виконання програми розпочинається з того самого мiсця, де призупинилося.
 
 |  10 марта 2012, 23:07: Вопрос закрыт (решение принял автор вопроса — Кудя): Не помогли.... Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |