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

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

Войти
Регистрация
Восстановить пароль
 
 
klynxe
10 / 10 / 4
Регистрация: 07.09.2012
Сообщений: 538
#1

В каком формате лучше хранить историю работы приложения? - C++

02.07.2015, 19:36. Просмотров 726. Ответов 20
Метки нет (Все метки)

Подскажите, в чем обычно хранят данные различные игры под windows, которые не онлайн? Просто в бинарных файлах своей структуры без баз данных?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2015, 19:36     В каком формате лучше хранить историю работы приложения?
Посмотрите здесь:

В каком STL-контейнере лучше хранить объекты? - C++
Есть класс, реализующий адреса class address { ... } Поискал в сети увидел 3 варианта хранения объектов : массив(array),...

В каком виде хранить таблицу с данными? - C++
Есть две такие таблицы В каком виде их лучше представить в программе? обращения будут не частые но производительность желательна...

В каком виде хранить двоичные числа - C++
Здравствуйте! Подскажите, пожалуйста, в каком типе данных хранить двоичные числа, что бы ими можно было примерно так пользоваться: a =...

Где лучше хранить данные таблиц? - C++
Собираюсь написать свой справочник ГОСТовского металлопроката. И вот возник вопрос, где хранить табличные данные. Прописать массивы прямо в...

Как лучше всего хранить коэффициенты? - C++
Мне нужно работать с матрицей порядка 100 000. Она сильно разреженная, по этому хранить все коэффициенты - не вижу смысла. Стало быть нужно...

Задача на алгоритм Дейкстры (как лучше хранить информацию?) - C++
Доброго времени суток. Есть задача: Есть идея хранить входные данные след. образом: Выделить в памяти 2-х матрицы(Tab1 и Tab2...

Оконный менеджер. Как лучше хранить указатели на элементы менеджера? - C++
Привет! Делаю тут 3D движок :wizard: В общем есть главный класс движка mgeSystem, так же есть класс окна mgeWindow, который не...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
hoggy
6437 / 2655 / 460
Регистрация: 15.11.2014
Сообщений: 5,844
Завершенные тесты: 1
03.07.2015, 02:09     В каком формате лучше хранить историю работы приложения? #16
Цитата Сообщение от Renji Посмотреть сообщение
Реляционными, иерархическими, etc. Все они структурируют данные внутри себя, разница лишь в способе.
не нужно объяснять мне то, что я итак знаю.

я вам ещё раз повторяю:
детали реализации конкретных баз не принципиальны.

Цитата Сообщение от Renji Посмотреть сообщение
Не понадобится, так как уже упрятана в недра СУБД.
вы похоже не осознаете о чем речь.

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

нужно сохранить данные.

как именно вы предлагаете извлекать данные из объектов,
и скармливать их front-end базы данных?

СУБД ничего не знает про ваши бизнес-классы, и объекты.
она знает только о своим собственном представлении данных,
и больше ни о чем.

она вообще не подозревает о существовании какой то там игрушки.


что бы добавлять/извлекать из базы данные,
вам придется написать код,
который будет брать объекты, извлекать из них данные,
и на основе этих данных формировать запросы в БД.

вы конечно можете делать это каждый раз вручную,
и затрачивать на эту рутину кучу времени.

а можете вооружится механизмом сериализации,
который автоматизирует для вас эту процедуру.

и сможет формировать данные любых объектов независимо от их сложности.

сериализатор не обязательно должен запихивать данные
в plain-text/binary/xml/json файлы.

с тем же успехом,
он может накормить данными front-end библиотеку конкретной базы данных.

и я вам ещё раз, и в последний раз делаю замечание:
детали реализации конкретной СУБД не принципиальны.

совершенно не важно,
как конкретная СУБД сериализует/десереализует свои данные.
это не имеет никакого отношения к бизнес-проекту (игрушке) пользователя.
Renji
1878 / 1276 / 290
Регистрация: 05.06.2014
Сообщений: 3,642
03.07.2015, 03:55     В каком формате лучше хранить историю работы приложения? #17
Цитата Сообщение от hoggy Посмотреть сообщение
представьте себе: есть некий проект.
у него есть некая оопнутая архитектура.
В памяти. А на диске у него кортеж "тип юнита/координаты/очки жизни" и больше ничего. И сериализация там, как собаке пятая нога. Впрочем, БД тоже по большей части для понту. Напоминаю, мы говорили о игре, а не базе знаний ИИ.
hoggy
6437 / 2655 / 460
Регистрация: 15.11.2014
Сообщений: 5,844
Завершенные тесты: 1
03.07.2015, 11:50     В каком формате лучше хранить историю работы приложения? #18
Цитата Сообщение от Renji Посмотреть сообщение
А на диске у него кортеж "тип юнита/координаты/очки жизни" и больше ничего. И сериализация там, как собаке пятая нога.
а это и есть сериализация, если что.
вот этот ваш кортеж на диске - продукт сериализации.

сериализация - процедура преобразования объекта
в некий формат по некоторым правилам.

в более точной формулировке:
процедура преобразования объектов в некую последоватольность байт по некоторым правилам.

пример:
если вы написали дружественную функцию,
которая выводит состояние объекта в std::cout,
то вы написали сериализацию для вывода в поток std::cout.

просто её делать можно по уму (см boost.serialization/cereal),
и поиметь кучу профита:
писать минимум кода,
возможность выбирать любые архивы,
конвертировать данные из одного формата в другой, и тп.


а можно по тупому:
для каждого класса каждый раз в ручную писать логику сериализации в один единственный формат.
и прибиться к нему намертво гвоздями.

Цитата Сообщение от Renji Посмотреть сообщение
Напоминаю, мы говорили о игре, а не базе знаний ИИ.
зачем вы напоминаете мне об одном и том же?
я же вам уже написал выше:

это - излишнее напоминание.
итак понятно, что раз у ТС такие вопросы,
значит PostgreSQL ему сейчас точно не нужен.
а вот сериализация понадобится по любому,
если игрушка чутка сложнее тетриса.
klynxe
10 / 10 / 4
Регистрация: 07.09.2012
Сообщений: 538
03.07.2015, 15:09  [ТС]     В каком формате лучше хранить историю работы приложения? #19

Не по теме:

hoggy, Renji, Хорошо бы какую-нибудь статью в раздел "Visual C++ и базы данных" с сравнением БД и полезными ссылками, думаю такие вопросы ни у одного меня возникают



Добавлено через 1 час 15 минут
Renji, может подскажите пару ссылок как подключить SQLite к проекту C++ на windows ?
Renji
1878 / 1276 / 290
Регистрация: 05.06.2014
Сообщений: 3,642
03.07.2015, 15:15     В каком формате лучше хранить историю работы приложения? #20
Цитата Сообщение от hoggy Посмотреть сообщение
в более точной формулировке:
процедура преобразования объектов в некую последоватольность байт по некоторым правилам.
Какие еще преобразования в последовательность? INSERT INTO my_table VALUES ("peasant",1,2,3);, дальнейшая судьба объектов - не моя проблема. В особо ленивом случае, вообще единственный stream.write, который ничего не преобразует, пишет как есть. Сериализация же - именно преобразование как минимум в пары "имя поля:значение". Иначе это профанация одна (любое расширение формата файла, сделает его нечитаемым).
Цитата Сообщение от klynxe Посмотреть сообщение
Renji, может подскажите пару ссылок как подключить SQLite к проекту C++ на windows ?
Я его только под пингвинами щупал.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2015, 16:00     В каком формате лучше хранить историю работы приложения?
Еще ссылки по теме:

В каком формате экспортировать модель персонажа со скелетом? Как это грузить в игру? - C++
В игре предполагается скелетная анимация, но не готовые движения, сохранённые в последовательные 3D кадры, а с расчётом кинематики в самой...

Можно ли хранить файл с текстом в ресурсах приложения - C++
Здравствуйте. Если мне нужно подгрузить большой (ну скажем, предложений 10-15) текст, то как лучше поступить? Можно, кончено, считать при...

В каком месте кода надо прятать окно приложения при старте? - C++
Приложение - на основе диалога. Требуется, чтобы при старте приложения его окно исчезало с экрана и пряталось в SysTray. Сделать значок в...

Перегрузка ifstream и ofstream для работы с файлами в little-endian формате? - C++
Всем привет, мне нужно реализовать классы для работы с файлами в little-endian формате. Для этого задумал сделать public-потомки...

Класс Time для работы с временем в формате «час:минута:секунда» - C++
Всем доброго времени суток! Есть вопрос: Создать класс Time для работы со временем в формате «час:минута:секунда». Класс должен...


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

Или воспользуйтесь поиском по форуму:
gazlan
3130 / 1905 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
03.07.2015, 16:00     В каком формате лучше хранить историю работы приложения? #21
Serialization
In computer science, in the context of data storage, serialization is the process of translating data structures or object state into a format that can be stored (for example, in a file or memory buffer, or transmitted across a network connection link) and reconstructed later in the same or another computer environment. When the resulting series of bits is reread according to the serialization format, it can be used to create a semantically identical clone of the original object.
Yandex
Объявления
03.07.2015, 16:00     В каком формате лучше хранить историю работы приложения?
Ответ Создать тему
Опции темы

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