Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как работать с файлами > 2 Гб в C++ Builder 6?

3.3K
31 декабря 2004 года
DENIS451
38 / / 31.12.2004
Мне нужно написать кусок кода, который открывает
файл на чтение в бинарном виде, выясняет его размер и запихивает в __int64,
считает сколько кусков по 1000000 байт в файле умещается
и какой размер последнего куска, считывает в char[]
последовательно все куски, где они обрабатываются, закрывает
файл. Такой код для файлов меньше 2 Гб Я уже писал. Открывал
файл
 
Код:
log = fopen(log_name,"rb");

переводил указатель в конец файла и получал его значение т. е.
размер файла в int
 
Код:
fseek(log,0,2);
razmer=ftell(log);

считывал в char kusok[1000001]
 
Код:
fread(kusok,1000000,1,log);

закрывал
 
Код:
fclose(log);


Теперь надо то же самое проделать с файлом размер которого может быть и 20 Гб.
Я так понимаю ф. fopen() и fclose() будут с большими файлами работать? А чем заменить
остальные? Очень прошу привести примеры реально работающего кода!
10
31 декабря 2004 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by DENIS451
Я так понимаю ф. fopen() и fclose() будут с большими файлами работать? А чем заменить
остальные?


Вроде как TFileStream нормально работает с 64-битными длинами файлов. Только вот считать за один раз больше 2 ГБ не получится.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог