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

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

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

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

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

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

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

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

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

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

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

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

20
hoggy
6653 / 2841 / 486
Регистрация: 15.11.2014
Сообщений: 6,286
Завершенные тесты: 1
03.07.2015, 02:09 #16
Цитата Сообщение от Renji Посмотреть сообщение
Реляционными, иерархическими, etc. Все они структурируют данные внутри себя, разница лишь в способе.
не нужно объяснять мне то, что я итак знаю.

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

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

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

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

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

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

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


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

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

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

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

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

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

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

совершенно не важно,
как конкретная СУБД сериализует/десереализует свои данные.
это не имеет никакого отношения к бизнес-проекту (игрушке) пользователя.
0
Renji
1925 / 1323 / 298
Регистрация: 05.06.2014
Сообщений: 3,808
03.07.2015, 03:55 #17
Цитата Сообщение от hoggy Посмотреть сообщение
представьте себе: есть некий проект.
у него есть некая оопнутая архитектура.
В памяти. А на диске у него кортеж "тип юнита/координаты/очки жизни" и больше ничего. И сериализация там, как собаке пятая нога. Впрочем, БД тоже по большей части для понту. Напоминаю, мы говорили о игре, а не базе знаний ИИ.
0
hoggy
6653 / 2841 / 486
Регистрация: 15.11.2014
Сообщений: 6,286
Завершенные тесты: 1
03.07.2015, 11:50 #18
Цитата Сообщение от Renji Посмотреть сообщение
А на диске у него кортеж "тип юнита/координаты/очки жизни" и больше ничего. И сериализация там, как собаке пятая нога.
а это и есть сериализация, если что.
вот этот ваш кортеж на диске - продукт сериализации.

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

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

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

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


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

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

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

Не по теме:

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



Добавлено через 1 час 15 минут
Renji, может подскажите пару ссылок как подключить SQLite к проекту C++ на windows ?
0
Renji
1925 / 1323 / 298
Регистрация: 05.06.2014
Сообщений: 3,808
03.07.2015, 15:15 #20
Цитата Сообщение от hoggy Посмотреть сообщение
в более точной формулировке:
процедура преобразования объектов в некую последоватольность байт по некоторым правилам.
Какие еще преобразования в последовательность? INSERT INTO my_table VALUES ("peasant",1,2,3);, дальнейшая судьба объектов - не моя проблема. В особо ленивом случае, вообще единственный stream.write, который ничего не преобразует, пишет как есть. Сериализация же - именно преобразование как минимум в пары "имя поля:значение". Иначе это профанация одна (любое расширение формата файла, сделает его нечитаемым).
Цитата Сообщение от klynxe Посмотреть сообщение
Renji, может подскажите пару ссылок как подключить SQLite к проекту C++ на windows ?
Я его только под пингвинами щупал.
0
gazlan
3132 / 1908 / 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.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2015, 16:00
Привет! Вот еще темы с ответами:

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

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

На каком с++ лучше начать писать? - C++
Здравствуйте. Я не особо разбираюсь в с++. Но написав одну из своих первых программ на C++/cli столкнулся с крешами из-за фреймврока на...

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


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

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

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