0 / 0 / 0
Регистрация: 22.01.2012
Сообщений: 5
1

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

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

Author24 — интернет-сервис помощи студентам
Я уверен что данный вопрос уже рассматривался на форуме но поискав ничего такого не смог найти. По этому поясню что мне надо.
Появилась желание написать простенькую консольную СУБД - это я сделал. Но данные она хранит в текстовых файлах к тому же каждый тип столбца это отдельный файл. Это очень не удобно и если можно так сказать не безопасно Захотел доработать проектик. Данные должны хранится не в текстовых файлах а в архивах или папках зашифрованных (не знаю как это точно сказать), к каждой базе отдельный файл. Надеюсь вы меня поняли о чем я. Помогите мне разобраться как это все реализовывается и что почитать можно на эту тему.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.01.2012, 11:56
Ответы с готовыми решениями:

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

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

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

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

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

Создание собственного класса var для учебы, аналог auto
Выкладываю для юных падаванов, коим и сам являюсь :) #include <iostream> #include <ctime>...

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

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

Создание файла собственного формата(Работа с файлами)
Здравствуйте, я только начинаю разбираться в WinForm, поэтому прошу за тупые вопросы не кидаться...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru