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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
masikus
2 / 2 / 0
Регистрация: 03.03.2013
Сообщений: 36
#1

Работа с большими файлами - C++

15.05.2013, 17:11. Просмотров 1292. Ответов 6
Метки нет (Все метки)

Как в c/c++ работать с большими файлами?
А точнее нужно открывать файлы размером больше 10 ГБ и работать с ними.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3584 / 1364 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
15.05.2013, 17:18     Работа с большими файлами #2
Цитата Сообщение от masikus Посмотреть сообщение
Как в c/c++ работать с большими файлами?
А точнее нужно открывать файлы размером больше 10 ГБ и работать с ними.
В чем проблема? Работать с частью файла или же маппить его.
quwy
Native x86
 Аватар для quwy
3079 / 1927 / 506
Регистрация: 13.02.2013
Сообщений: 6,415
15.05.2013, 17:28     Работа с большими файлами #3
Цитата Сообщение от masikus Посмотреть сообщение
Как в c/c++ работать с большими файлами?
А точнее нужно открывать файлы размером больше 10 ГБ и работать с ними.
Точно, так же, как и со всеми другими файлами. Вы же не имеете привычки всегда считывать весь файл в память для работы с ним?
masikus
2 / 2 / 0
Регистрация: 03.03.2013
Сообщений: 36
16.05.2013, 05:25  [ТС]     Работа с большими файлами #4
Можете показать пример работы с файлом по частЯм и выделением памяти под это
quwy
Native x86
 Аватар для quwy
3079 / 1927 / 506
Регистрация: 13.02.2013
Сообщений: 6,415
16.05.2013, 05:41     Работа с большими файлами #5
Цитата Сообщение от masikus Посмотреть сообщение
Можете показать пример работы с файлом по частЯм и выделением памяти под это
Странный вопрос. Открываете десятигиговый файл как обычно, читаете первые, скажем, 1024 килобайта, обрабатываете как вам нужно, читаете следующие 1024 килобайта, снова обрабатываете, и так, пока не достигли конца файла.
Uncle_Vitok
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 36
05.03.2016, 18:09     Работа с большими файлами #6
а можно пример кода?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2016, 01:03     Работа с большими файлами
Еще ссылки по теме:

работа с большими текстовыми файлами C++
Работа с файлами C++
C++ Работа с файлами
C++ Работа с файлами
C++ Работа с очень большими файлами

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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12534 / 7096 / 797
Регистрация: 27.09.2012
Сообщений: 17,508
Записей в блоге: 2
Завершенные тесты: 1
06.03.2016, 01:03     Работа с большими файлами #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    std::string get_full_sum(const std::string& file_path, CHECKSUM_TYPE sum_type, size_t block_size)
    {
        Glib::Checksum sum(convert_to_glibmm_checksub_type(sum_type));
        std::ifstream file(file_path, std::ios::binary);
        if( file.is_open() ){            
            std::string buffer;
            buffer.resize(block_size);
            do{
                file.read(&(buffer[0]), block_size);
                buffer.resize(file.gcount());
                sum.update(buffer);
            }while(buffer.size()>0);
        }
        return sum.get_string();
    }
Проверено на файле в 32 Гб.
Подвох?
Yandex
Объявления
06.03.2016, 01:03     Работа с большими файлами
Ответ Создать тему
Опции темы

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