Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Книги про сериализацию и сохранение данных. / 25 сообщений из 63, страница 1 из 3
20.06.2013, 21:23
    #38305429
manking
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Книги про сериализацию и сохранение данных.
Есть ли книги в которых подробно показываются различные методики сохранения разнообразных данных на диск.
То есть чтобы понять какие проблемы могут быть, в чём сложности?
...
Рейтинг: 0 / 0
20.06.2013, 21:33
    #38305435
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Книги про сериализацию и сохранение данных.
спецификациии TIFF, EXIF, DNG, MPEG-4 Part 14, AVI, MKV, RTF, BIFF .....
...
Рейтинг: 0 / 0
20.06.2013, 21:42
    #38305439
manking
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Книги про сериализацию и сохранение данных.
Изопропилспецификациии TIFF, EXIF, DNG, MPEG-4 Part 14, AVI, MKV, RTF, BIFF .....

Ух.. Не хочу читать спецификации. Есть ли книги на русском с подробным объяснением и рассуждением?
Ну или хотя бы, в крайнем случаи если уж совсем пусто то на английском техническом(без лишней ненужной воды).
Например подробно про boost::serialize?
...
Рейтинг: 0 / 0
20.06.2013, 23:53
    #38305514
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Книги про сериализацию и сохранение данных.
Сериализация как наука - неинтересна IMHO. Потому как там нет науки.
А вот оптимизация доступа для специализированных типов файлов - такое
думаю есть. Для баз данных. Блочный доступ. Random access. Serial access. Дисковая сортировка.
Различные режимы OS для открытия файлов. Блокировки. Файловые системы.
Это важнее и интереснее.
...
Рейтинг: 0 / 0
21.06.2013, 00:03
    #38305520
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Книги про сериализацию и сохранение данных.
mankingЕсть ли книги в которых подробно показываются различные методики сохранения
разнообразных данных на диск.
Какие ещё методики? Существует ровно один способ сохранения данных на диск:
подготавливается буфер и передаётся специальной функции ОСи. Всё остальное она сделает сама.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
21.06.2013, 00:42
    #38305549
manking
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Книги про сериализацию и сохранение данных.
Dimitry SibiryakovmankingЕсть ли книги в которых подробно показываются различные методики сохранения
разнообразных данных на диск.
Какие ещё методики? ...


Ну я думал будет понятно, что речь идёт о записи определенной совокупности структур и классов данных из памяти на накопитель.
То есть как сохранения в играх.


maytonСериализация как наука - неинтересна IMHO. Потому как там нет науки.
Нет, ну если у меня пара структур с 5 переменными то проблем нет.
Быстро записал их, затем загрузил в том же порядке.

Но ведь если структур порядка 50, в каждой в среднем по 10 данных(есть сложные stl конструкции которые содержат другие указатели на другие структуры).
Есть ООП с наследованием. Вот такое же, от балды не сохранишь. А если сохранишь то получишь множество несоответствий при загрузке.

Или это просто догадки и здесь сложности особой нет?
Просто не хочется потом рефакторить этот код, из-за того что невнимательно изучил процесс, поэтому и спрашиваю.
Вот есть такая книга Мартина Фаулера "Рефакторинг". И там очень грамотно книга разбита на множество проблем, показана проблема и идёт решение.
Может что то подобное есть?
...
Рейтинг: 0 / 0
21.06.2013, 01:15
    #38305559
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Книги про сериализацию и сохранение данных.
mankingИли это просто догадки и здесь сложности особой нет?
Может и есть, но лично я её не вижу. Придётся, конечно, много понажимать на кнопочки,
программируя методы Save и Load для каждого класса, но такая уж у программистов работа.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
21.06.2013, 01:17
    #38305560
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Книги про сериализацию и сохранение данных.
mankingНо ведь если структур порядка 50, в каждой в среднем по 10 данных(есть сложные stl конструкции которые содержат другие указатели на другие структуры).
Есть ООП с наследованием. Вот такое же, от балды не сохранишь. А если сохранишь то получишь множество несоответствий при загрузке. Сохраняй данные. Не сохраняй указатели. Сохраняй данные.
...
Рейтинг: 0 / 0
21.06.2013, 01:23
    #38305564
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Книги про сериализацию и сохранение данных.
White Owl, хорошая мантра.
...
Рейтинг: 0 / 0
21.06.2013, 01:28
    #38305567
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Книги про сериализацию и сохранение данных.
maytonWhite Owl, хорошая мантра.Теперь бы еще manking её понял...
...
Рейтинг: 0 / 0
21.06.2013, 01:45
    #38305574
manking
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Книги про сериализацию и сохранение данных.
Ну а как быть в такой ситуации? Я бы сразу понял правильно понимаю сериализация или это нечто другое.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
struct B
{
};

struct A
{
map<int,B*> map_arr; // здесь B* ссылается на элемент объекта B "vector<B> vec;" из класса С.
};

struct C
{
vector<B> vec; // 
};

A a;
C c;
... // заполнил


Вот в данном случаи я сохраню 
c.save(); // c.vec будет записан в файл.

// дальше
a.save(); // сохраняю key int, и у меня есть пара для него указатель на B*. Что в данном случаи делать?
...
Рейтинг: 0 / 0
21.06.2013, 02:53
    #38305583
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Книги про сериализацию и сохранение данных.
mankinga.save(); // сохраняю key int, и у меня есть пара для него указатель на B*. Что в данном случаи делать?


Разумеется, сохранять соответствующие B, что же ещё...
...
Рейтинг: 0 / 0
21.06.2013, 12:05
    #38306031
manking
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Книги про сериализацию и сохранение данных.
MasterZivРазумеется, сохранять соответствующие B, что же ещё...

То есть нужно дублировать данные?

Но ведь когда восстановлю vector<B> vec; и задам например vector[4].переменная = 7;
То map<int,B*> map_arr[10], который ссылался на vector[4], будет ссылаться на что то другое?
...
Рейтинг: 0 / 0
21.06.2013, 12:10
    #38306040
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Книги про сериализацию и сохранение данных.
mankingТо есть нужно дублировать данные?
Нет, достаточно вообще не сохранять B*, а строить связи заново при загрузке.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
21.06.2013, 12:19
    #38306054
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Книги про сериализацию и сохранение данных.
mankingMasterZivРазумеется, сохранять соответствующие B, что же ещё...

То есть нужно дублировать данные?

Но ведь когда восстановлю vector<B> vec; и задам например vector[4].переменная = 7;
То map<int,B*> map_arr[10], который ссылался на vector[4], будет ссылаться на что то другое?

Зачем дублировать?
...
Рейтинг: 0 / 0
21.06.2013, 12:31
    #38306077
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Книги про сериализацию и сохранение данных.
manking, почитай еще про
http://ru.wikipedia.org/wiki/EBML
для общего развития
...
Рейтинг: 0 / 0
21.06.2013, 12:47
    #38306098
manking
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Книги про сериализацию и сохранение данных.
Dimitry SibiryakovНет, достаточно вообще не сохранять B*, а строить связи заново при загрузке.

А.. ну понятно.

Вообще я использую boost::serialize и там сохранять указатели можно,но там просто пишутся сами данные.
И мне казалось, что в продвинутых материалах могут рассматривать дополнительные возможности вроде задания связей для указателей. Но наверное в самой библиотеке такого нет.
Без этого конечно будет нудновато :((.
...
Рейтинг: 0 / 0
21.06.2013, 14:02
    #38306241
Inkelyad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Книги про сериализацию и сохранение данных.
Dimitry SibiryakovПридётся, конечно, много понажимать на кнопочки,
программируя методы Save и Load для каждого класса, но такая уж у программистов работа.

А потом оказывается, что в новой версии программы в классах данных чуточку побольше, а
обратную совместимость протокола/сохраненных файлов поддерживать надо. В результате один load превращается в
load_version_1, load_version_2, ... Которые еще и почти одинаковые, тк изменений все-таки не много(пару полей к десятку существующих добавилось).
А потом еще выясняется, что прогу надо спортировать на архитектуру с другой endianness и все эти load_* приходится старательно причесывать на предмет связанных с этим ошибок.

Книжку по Best Practices все-таки хотелось бы.
...
Рейтинг: 0 / 0
21.06.2013, 14:07
    #38306251
Inkelyad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Книги про сериализацию и сохранение данных.
maytonmanking, почитай еще про http://ru.wikipedia.org/wiki/EBML для общего развития
Для общего развития можно читать вообще все, что там же на странице 'Comparison of data serialization formats' упоминается. Вот только это не очень сильно помогает понять, где грабли разложены при попытках написать еще один свой.
...
Рейтинг: 0 / 0
21.06.2013, 14:10
    #38306255
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Книги про сериализацию и сохранение данных.
mankingВообще я использую boost::serialize и там сохранять указатели можно,но там просто пишутся сами данные.
И мне казалось, что в продвинутых материалах могут рассматривать дополнительные возможности вроде задания связей для указателей. Но наверное в самой библиотеке такого нет.
Без этого конечно будет нудновато :((.
В доке boost::serialize есть куча инфы как сохранять связи и прочее .
Прочтите ее для начала. Там язык простой.
А потом уже книги ищите.
...
Рейтинг: 0 / 0
21.06.2013, 14:15
    #38306265
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Книги про сериализацию и сохранение данных.
...
Рейтинг: 0 / 0
21.06.2013, 15:53
    #38306465
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Книги про сериализацию и сохранение данных.
manking,

Чтобы снять все вопросы, достаточно, я думаю, изучить код одной из реализаций сереализации в существующих библиотеках.

Я тебе предлагаю поглядеть, как это сделано в библиотеке MFC, там достаточно просто, но все, что надо, есть.
...
Рейтинг: 0 / 0
21.06.2013, 17:52
    #38306667
Compositum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Книги про сериализацию и сохранение данных.
Беарне Стровструп, "Программирование. Принципы и практика использования C++", главы 10 и 11. Имхо лучше английский вариант, т.к. несмотря на то, что на обложке написано "Исправленное издание!", выборочная проверка сразу же выявляет , что это враньё, с расчётом на замануху очередных покупателей.
...
Рейтинг: 0 / 0
23.06.2013, 17:07
    #38307448
z
z
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Книги про сериализацию и сохранение данных.
Dimitry SibiryakovmankingЕсть ли книги в которых подробно показываются различные методики сохранения
разнообразных данных на диск.
Какие ещё методики? Существует ровно один способ сохранения данных на диск:
подготавливается буфер и передаётся специальной функции ОСи. Всё остальное она сделает сама.

А я то, темный, всю жиСТЬ думал, что модель дисковой памяти ( для программиста ) по сути ничем не отличается от RAM...
...
Рейтинг: 0 / 0
23.06.2013, 17:56
    #38307476
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Книги про сериализацию и сохранение данных.
zвсю жиСТЬ думал
Короткая же у тебя жисть. MMF появились не так уж давно, и всё равно они - костыль.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Книги про сериализацию и сохранение данных. / 25 сообщений из 63, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]