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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
nchameleon
2 / 2 / 1
Регистрация: 06.04.2010
Сообщений: 161
#1

Быстрое создание пустого файла определенного размера - C++

24.12.2012, 13:38. Просмотров 1560. Ответов 2
Метки нет (Все метки)

Добрый день

Столкнулся с проблемой как можно очень быстро создать файл на жестком диске, заполнены нулями (или мусором)
за малый промежуток времени

я сейчас использую следующий код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
std::ofstream FILE_SAVE; 
FILE_SAVE.open(path_File.c_str());  
 
for(int k=0; k<200 ;k++)
{
    FILE_SAVE.write((char *) & (int(0)),sizeof(int)); // длина массива
    FILE_SAVE.write((char *) & (int(0)),sizeof(int)); // где реально располагаются данные;
 
    for (int i=0; i< 1000;i++)
    {
        FILE_SAVE.write((char *) & (int(0)),sizeof(int  ));
        FILE_SAVE.write((char *) & (int(0)),sizeof(int  ));
        FILE_SAVE.write((char *) & (double(0.0)),sizeof(double));
        FILE_SAVE.write((char *) & (double(0.0)),sizeof(double));
        FILE_SAVE.write((char *) & (double(0.0)),sizeof(double));
        FILE_SAVE.write((char *) & (double(0.0)),sizeof(double));
        FILE_SAVE.write((char *) & (double(0.0)),sizeof(double));
        FILE_SAVE.write((char *) & (double(0.0)),sizeof(double));
        FILE_SAVE.write((char *) & (double(0.0)),sizeof(double));
    }
}
после чего я буду записывать/считывать данные уже с конкретной позиции k,
т.е. через какое то время произведу вычисления и в файле запишу массив с позиции k=14,

заполняя файл уже по мере работы программы, но предварительно создав файл, как базу данных для массивов

код приведенный выше выглядит ужасно и работать будет долго ((

может кто подскажет более изящный способ сформировать файл, заранее спасибо))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2012, 13:38     Быстрое создание пустого файла определенного размера
Посмотрите здесь:
C++ Быстрое создание бинарного файла заданного размера
Создание типа данных для чисел определенного размера C++
Максимальное быстрое создание большого файла C++
Как при достижении определенного размера файла закрыть его C++
C++ Создание пустого проекта по умолчанию.
Структура с сhar определенного размера. C++
Быстрое чтение файла C++
Открытие файлов из каталога и сохранение их в каталог определенного размера C++
C++ Быстрое заполнение большого файла
Быстрое чтение массива из файла C++
C++ Быстрое преобразование фурье wave файла
Быстрое считывание 32кб из файла 7гб C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
palva
2594 / 1816 / 260
Регистрация: 08.06.2007
Сообщений: 6,961
Записей в блоге: 4
24.12.2012, 14:06     Быстрое создание пустого файла определенного размера #2
C++
1
2
3
4
5
6
7
8
9
10
#include <fstream>
int main(void)
{
    std::ofstream FILE_SAVE; 
    FILE_SAVE.open("ddddd.dat");
    FILE_SAVE.seekp(9999, 0);
    FILE_SAVE << '\0';
    FILE_SAVE.close();
    return 0;
}
nchameleon
2 / 2 / 1
Регистрация: 06.04.2010
Сообщений: 161
24.12.2012, 15:04  [ТС]     Быстрое создание пустого файла определенного размера #3
Цитата Сообщение от palva Посмотреть сообщение
FILE_SAVE.seekp(9999, 0);
а я думал это тока с существующему файлу, с уже имеющемся объемом - относиться))
Ответ Создать тему
Опции темы

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