Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сериализация своими руками, Как работает сериализация 
:(
    Опции темы
JDL500
Дата 22.1.2007, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 29.6.2006

Репутация: нет
Всего: нет



Доброе время суток!

У меня такой вопрос.
Как самому реализовать сериализацию?
На с++.
Знаю, что реализаций существует много (Boost, MFC ... ).
Хотелось бы самому разобраться как это работает и реализовать.

Например есть объект класса.
Надо память побайтно читать и в файл писать?
А потом также в память копировать?

Заранее спасибо.


PM   Вверх
Sartorius
Дата 22.1.2007, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: 8
Всего: 37



 Если нет динамических полей - то да. Если есть - то соответственно выделять для них память при чтении и писать в кучу из файла.
PM MAIL ICQ   Вверх
Oleg_Ci
Дата 22.1.2007, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Friend
**


Профиль
Группа: Участник
Сообщений: 485
Регистрация: 28.5.2006
Где: Новосиб.обл.

Репутация: 3
Всего: 30



Месяц назад поучительная (для меня) тема была Сериализация smile 
PM MAIL   Вверх
PoloS
Дата 22.1.2007, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 29.12.2006
Где: МО, г. Одинцово

Репутация: 1
Всего: 5



нупский вопрос: а что такое сериализация?
PM MAIL ICQ   Вверх
nickless
Дата 22.1.2007, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 19
Всего: 181



Цитата(PoloS @ 22.1.2007,  20:21)
нупский вопрос: а что такое сериализация?

Процесс перевода какой-либо структуры данных (это может быть всё что угодно, в том числечто-нибудь разветвлённое) в массив байтов, который скажем можно записать в файл.


--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
nerezus
Дата 22.1.2007, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 3
Всего: 43



MSDN: CFile и CArray ищи.

Добавлено @ 21:58 
Ааа, если сам, то просто создай метод serialize(), который принимает поток...
И создай статичный метод с именем unserialize(). Естественно, тоже поток принимает пкусть.

И всего делов то )


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Vyacheslav
Дата 23.1.2007, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 9
Всего: 59



Делов то конечно немного smile ... когда проблему упростили до банального: записать объект в поток - восстановить  объект наперед известного класса из потока. Как правило же, в из потока надо восстанавливать объекты, информация  о классе которого записана в том же потоке. То есть определенно можно сказать, что нужно восстановить объект класса, который входит в заданный список классов. Информация о том, какой объект какого класса стоит в очереди на восстановление заранее неизвестна. Отсюда, необходимость наличия абстрактной фабрики или фабричного метода в системе сериализации, а также разработка приемлимого механизма для регистрации новых классов в системе сериализации для того, что бы при добавлении нового класса не приходилось каждый раз перерписывать код.
А так все конечно до банальности просто smile


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0749 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.