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

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

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

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

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

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

Создание собственного класса - C++
Создать класс для работы со стеком, организованным как связный однонаправленный список. В классе описать методы добавления элемента в стек...

Создание списка объектов собственного класса (SQL) - C++
очень нужно! объясните, пожалуйста, доходчиво, а лучше с примером, как создать список из объектов класса, к примеру, "human", используя...

Степенной метод нахождения наибольшего по модулю собственного значения и соответствующего ему собственного вектора - C++
Привет всем. Есть код программы, но почему то он не работает, подскажите в чем дело, может ввожу неправильно. Тестовый пример: ...

Подключение собственного заголовочного файла - C++
В общем есть файл с исходный кодом, который содержит main(). Здесь же подключаю свой заголовочный файл, который тянет за собой другой файл...

Запись в собственного класса бинарный файл собственного - C++
есть Свой тип данных дробь. Надо реализовать запись и загрузку в\из бинарного файла. #ifndef RATION_H #define RATION_H #include...

Создание собственного оператора С++ - C++
Как создать собственный оператор типа if, в смысле Оператор (){ ...//Какие-то действия } Я просто хочу создать нечто наподобие...

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

Создание своего формата и хранение данных в нем - C++
Подскажите, как можно создать формат файла, который сможет хранить информацию различного рода. К примеру я хочу, чтобы файл хранил...

Считывание из файла определенного формата - C++
Доброе время суток, запутался тут, помогите пожалуйста. информация в файле представлена следующим образом ...

Обработка некорректного формата файла - C++
Здравствуйте. Такой вопрос: по заданию нужно организовать обработку неккоректного формата входящего файла, не знаю как именно можно...

У кого есть описание формата скрипт файла ресурсов (.rc) - C++
У кого есть описание формата скрипт файла ресурсов (.rc) для линкера.


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.01.2012, 13:41
Ответ Создать тему
Опции темы

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