Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
naxerakozebayan
Сообщений: n/a
#1

Файлы больше четырех гектаров - C++

11.11.2009, 16:43. Просмотров 365. Ответов 2
Метки нет (Все метки)

Вообщем пишу код который забивает какую-то часть (или весь файл) нулями:

LPBYTE bufer=(LPBYTE)malloc(1024*4); //писать буду блоками по 4 кила
DWORD filelen=0,filelenH=0;
ZeroMemory(bufer,1024*4);
HANDLE hfile=CreateFile(filename,GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
filelen=GetFileSize(hfile,&filelenH);
и тут до меня дошло что я не совсем понимаю как быть если файл больше 4 гектаров
получается что длина файла это filelenH*sizeof(DWORD)+filelen ? а как сравнивать такие значения и вообще какой именно тип данных надо использовать чтоб вместить в себя 64 битное целое. Которое потом для использования в других местах надо будет опять таки как то сравнивать с простым DWORD.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2009, 16:43     Файлы больше четырех гектаров
Посмотрите здесь:

Программа не обрабатывает файлы больше 100 килобайт - C++
валится при изменении константы MAXFILESIZE. Надо чтобы программа обрабатывала файлы больше 100кб. Было переполнение стека, но я...

Ребята а что FILE * больше 4Gb файлы не поддерживает? - C++
Ребята а что FILE * больше 4Gb файлы не поддерживает?

Структуры: Вывести все танки с 1940-1950 г. чей калибр , больше 50 мм. или же просто больше 50 - C++
Названия структуры: Танки. Ввод данных такой: Названия Год выпуска Калибр Скорость Вывести:

а куб в четырех операциях - C++
pow(a,3.0) и pow (a,10) за четыре операции ; pow(a,4.0) pow(a,20.0) за пять операции как написать без пова ? Добавлено через 12 минут ...

Сумма четырех квадратов - C++
Известно, что любое натуральное число можно представить в виде суммы не более чем четырех квадратов натуральных чисел или, что тоже самое,...

Написать условие "произведение двух целых чисел больше 30, и хотя бы один из сомножителей больше 8" - C++
2) Напишите в виде логического выражения условие: произведение двух целых чисел больше 30, и хотя бы один из сомножителей больше 8.

Определить наименьшее из четырех чисел - C++
Вводятся 4 целых числа. Определить наименьшее из них. Через принт и скан

минимальное из четырех вещественных чисел - C++
Функции, возвращающие значения Используя функцию Min2(A,B) вещественного типа, находящую минимальное из двух вещественных чисел A и B,...

Задача о четырех правильных цифрах - C++
дано четыре правильных цифр

пятый цикл в четырех + sqrt - C++
есть код for(i=1;i<=20;i++) { for(j=1;j<=20;j++) if(pole==1) { for(x=1;x<=20;x++) { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
1693 / 880 / 44
Регистрация: 04.06.2008
Сообщений: 5,438
11.11.2009, 19:34     Файлы больше четырех гектаров #2
Чтобы извлечь размер файла, который является большим, чем значение двойного слова (DWORD), используйте функцию GetFileSizeEx

Не поможет?
odip
Эксперт С++
7156 / 3296 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
12.11.2009, 12:12     Файлы больше четырех гектаров #3
GetFileSizeEx() поможет точно.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru