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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.73
JoberLord
0 / 0 / 0
Регистрация: 22.01.2012
Сообщений: 5
#1

Создание собственного формата файла - C++

22.01.2012, 11:56. Просмотров 1962. Ответов 5
Метки нет (Все метки)

Я уверен что данный вопрос уже рассматривался на форуме но поискав ничего такого не смог найти. По этому поясню что мне надо.
Появилась желание написать простенькую консольную СУБД - это я сделал. Но данные она хранит в текстовых файлах к тому же каждый тип столбца это отдельный файл. Это очень не удобно и если можно так сказать не безопасно Захотел доработать проектик. Данные должны хранится не в текстовых файлах а в архивах или папках зашифрованных (не знаю как это точно сказать), к каждой базе отдельный файл. Надеюсь вы меня поняли о чем я. Помогите мне разобраться как это все реализовывается и что почитать можно на эту тему.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2012, 11:56     Создание собственного формата файла
Посмотрите здесь:

C++ Создание собственного класса
У кого есть описание формата скрипт файла ресурсов (.rc) C++
C++ Запись в собственного класса бинарный файл собственного
Исследование "неизвестного" формата (отрезать начало файла до определённого заголовка) C++
C++ Степенной метод нахождения наибольшего по модулю собственного значения и соответствующего ему собственного вектора
Считывание из файла определенного формата C++
Каким образом открыть двоичный код, файла любого формата? C++
C++ Создание своего формата и хранение данных в нем
C++ Обработка некорректного формата файла
Создание списка объектов собственного класса (SQL) C++
Создать программу, реализующую: создание файла, просмотр файла, поиск по файлу, выход C++
Подключение собственного заголовочного файла C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NoMasters
Псевдослучайный
1743 / 1086 / 71
Регистрация: 13.09.2011
Сообщений: 3,109
22.01.2012, 12:08     Создание собственного формата файла #2
Зачем это делается? Если нужна база данных для дальнейшего использования где бы то ни было, не нужно городить велосипеды, есть SQLite, Berkeley DB и ещё весомое количество всяких заведомо рабочих, быстрых и фичастых решений.
Если в учебных целях, то надо несколько подробней сформулировать задачу. В общем случае "строки" данных имеют фиксированную длину и в случае необходимости содержат указание на положение и размер данных полей изменяемой длинны.
JoberLord
0 / 0 / 0
Регистрация: 22.01.2012
Сообщений: 5
22.01.2012, 12:52  [ТС]     Создание собственного формата файла #3
Это все в учебных целях. Попробую подробно описать что требуется. Сейчас моя программа хранит данные в текстовых фалах тоесть если в базе есть поле Фамилия то существует текстовый фал в котором записаны Фамилии. Так же с именем и прочими полями. Но проблема появляется если таких баз скажем 10 штук и по 10 полей в каждой из них. Получается 100 файлов в одном каталоге где лежит сама программа. Я хочу написать архив который будет содержать текстовые файлы с данными. Каждый архив это отдельная БД. Ну и к этому архиву доступ может получить только моя СУБД. На счет шифровки пока вопрос не стоит мне бы просто с архивом разобраться.
NoMasters
Псевдослучайный
1743 / 1086 / 71
Регистрация: 13.09.2011
Сообщений: 3,109
22.01.2012, 13:01     Создание собственного формата файла #4
Цитата Сообщение от JoberLord Посмотреть сообщение
Получается 100 файлов в одном каталоге где лежит сама программа
В принципе в этом нет ничего плохого: "Если вы используете дополнительный слой для хранения данных, у вас просто плохая файловая система". Если ту часть полей, которая имеет фиксированную длину ещё имеет смысл объединить в один файл, то с данными переменной длинны будет достаточное количество гемора, особенно если их надо менять постоянно. Дабы не разводить помойку, можно сделать иерархию директорий.
JoberLord
0 / 0 / 0
Регистрация: 22.01.2012
Сообщений: 5
22.01.2012, 13:24  [ТС]     Создание собственного формата файла #5
А если файлов не 100 а 1000 или больше (такого конечно не будет) В 1 файл несколько полей я не смогу засунуть потому как в txt каждая строчка это определенная фамилия или имя по этому для каждого поля отдельный файл.
P.S. Погуглив я вроде бы понял что такая реализация называется VFS - виртуальная файловая система. Но как ее разработать??
P.P.S. Ну и еще причина того зачем я это делаю мне просто очень интересно, я жажду это сделать
NoMasters
Псевдослучайный
1743 / 1086 / 71
Регистрация: 13.09.2011
Сообщений: 3,109
22.01.2012, 13:41     Создание собственного формата файла #6
Ну хорошо, рассмотрим структуру файла, хранящего записи из двух строк каждая.
Первый вариант: допущение: пусть в них нет нулевого символа и переносов. Тогда банально пишем в строки файла, разделенные переносами, строки-поля данных, разделяя их нулевым символом. Можно взять специальный символ, ЕМНИП, в ansii имеется аж три таких, специально предназначенных для разделения. Строки файла тоже можно делить одним из них.
Второй вариант: в начале файла имеем массив структур вида {смещение для первого поля, смещение для второго поля}, заканчивающиеся, например, структурой с нулевыми значениями или можно ещё раньше(в самом начале) записать их количество. Дальше идут непосредственно поля с данными. Итого: знаем откуда читать и знаем сколько(смещение нужного поля вычитаем из смещения следующего).
Это просто простые примеры, можно развивать долго и упорно.
Yandex
Объявления
22.01.2012, 13:41     Создание собственного формата файла
Ответ Создать тему
Опции темы

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