Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 981

Раздел: C++
/ вопрос закрыт /

Здравствуйте! Как программно узнать размер очень большого файла(свыше 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.
Ерёмин А.А.

Ерёмин А.А. (статус: *Администратор), 5 марта 2012, 23:18 [#1]:

min@y™: только код не сишный :-)
min@y™

min@y™ (статус: Доктор наук), 6 марта 2012, 08:22 [#2]:

Цитата (Ерёмин А.А.):

только код не сишный

А какая разница? Один хрен, там сплошной WinAPI.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Кудя

Кудя (статус: Посетитель), 6 марта 2012, 14:36 [#3]:

...Попытаюсь на C++ перевести. Код прост, но умножая на MaxLongWord программа сможет прочесть размер очень большого файла? No logic or im noob :-D
Think Different. (c)
min@y™

min@y™ (статус: Доктор наук), 6 марта 2012, 14:57 [#4]:

Попробуй и узнаешь.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Кудя

Кудя (статус: Посетитель), 8 марта 2012, 12:46 [#5]:

Всё равно число то же, отрицательное =(
Think Different. (c)
min@y™

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™

min@y™ (статус: Доктор наук), 8 марта 2012, 13:47 [#8]:

Переведи и то и другое в 16-ричную систему счисления и всё поймёшь. Я перевёл и всё понял.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Кудя

Кудя (статус: Посетитель), 8 марта 2012, 14:05 [#9]:

...ща найду как это сделать :-D
Think Different. (c)
Кудя

Кудя (статус: Посетитель), 8 марта 2012, 15:03 [#10]:

7516192768 --- 1C0000000
-1073741824 --- FFC0000000
я перевёл, но ничего схожего кроме ноликов не вижу)
Think Different. (c)
min@y™

min@y™ (статус: Доктор наук), 8 марта 2012, 16:13 [#11]:

Цитата (Кудя):

я перевёл, но ничего схожего кроме ноликов не вижу)

ДА НЕУЖЕЛИ???!!!111
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
bugmenot

bugmenot (статус: 3-ий класс), 8 марта 2012, 21:00 [#12]:

руками пусть работает
в двоичную пусть переводит, может дойдет
виконання програми розпочинається з того самого мiсця, де призупинилося.

10 марта 2012, 23:07: Вопрос закрыт (решение принял автор вопроса — Кудя): Не помогли....

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 марта 2023, 12:17
Выполнено за 0.02 сек.
Рейтинг@Mail.ru