Как работать с файлами > 2 Гб в C++ Builder 6?
файл на чтение в бинарном виде, выясняет его размер и запихивает в __int64,
считает сколько кусков по 1000000 байт в файле умещается
и какой размер последнего куска, считывает в char[]
последовательно все куски, где они обрабатываются, закрывает
файл. Такой код для файлов меньше 2 Гб Я уже писал. Открывал
файл
Код:
log = fopen(log_name,"rb");
переводил указатель в конец файла и получал его значение т. е.
размер файла в int
Код:
fseek(log,0,2);
razmer=ftell(log);
razmer=ftell(log);
считывал в char kusok[1000001]
Код:
fread(kusok,1000000,1,log);
закрывал
Код:
fclose(log);
Теперь надо то же самое проделать с файлом размер которого может быть и 20 Гб.
Я так понимаю ф. fopen() и fclose() будут с большими файлами работать? А чем заменить
остальные? Очень прошу привести примеры реально работающего кода!
Цитата:
Originally posted by DENIS451
Я так понимаю ф. fopen() и fclose() будут с большими файлами работать? А чем заменить
остальные?
Я так понимаю ф. fopen() и fclose() будут с большими файлами работать? А чем заменить
остальные?
Вроде как TFileStream нормально работает с 64-битными длинами файлов. Только вот считать за один раз больше 2 ГБ не получится.