![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Xenon |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
Нигде не могу найти нормальной документации, как это реализовать на С++.
В поиске посылают либо в MFC, либо в boost Может кто видел статью подобную? |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
||||
|
||||
| SaDFromSpb |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 5.4.2006 Где: Санкт-Петербург Репутация: 3 Всего: 3 |
Xenon, Так ее суть в том, чтобы все члены данные засунуть в непрерывный кусок памяти по порядочку, а потом их достать от туда (если речь идет о сериализации в память или в двоичный файл). Что тут, собственно, такого? Зачем что-то искать? Даже на Java, на сколько я знаю, нет встроенного решения. Это всегда вручную делается. (Хотя я могу ошибаться)
Это сообщение отредактировал(а) SaDFromSpb - 9.12.2006, 21:26 -------------------- "За исключением части, касающейся потоков, библиотека Loki написана на стандартном языке С++. Увы, это означает, что многие современные компиляторы не смогут работать с ней в полном объеме." (А. Александреску. Modern C++ design. 2001) |
|||
|
||||
| Xenon |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
SaDFromSpb, ну в MFC есть Archive, в С++ можно подклчить Boost - это уже, так сказать, костыли помощи
Daevaorn, у меня просто имеется вектор указателей на объекты классов, в которых есть поля типа string. Мне нужно каким-то образом это в бинаромном виде сохранить, а потом иметь возможность восстановить(прочитать). |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
boost::serialization - самый быстрый(в интеграции) и простой способ |
|||
|
||||
| Xenon |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
Daevaorn, а если самому?
А нет по boost`у хелпа на русском? |
|||
|
||||
| WERITAS |
|
|||
|
******** ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 2.5.2005 Где: Москва Репутация: нет Всего: 5 |
Функцию Serialiaze ты сам будешь писать -------------------- Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак" |
|||
|
||||
| zabivator |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 7.6.2006 Где: нск Репутация: 1 Всего: 2 |
Сериализация - тема очень интересная, хорошей общей обзорной статьи не встречал. По-моему, эту часть языка ооочень неплохо было бы стандартизировать. Ай! Ногами не пинать, сам могу примеров пачку придумать, для которых стандарт фиг придумаешь.
--------------------
#include <zabivator>int main( int, char * [] ){ while( Zabivator::жив() ) Zabivator::моск()++; return 0;} |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Xenon, юзай буст - не ошибёшься. Возможностей в буст::сериализейшен куча, даже если сейчас все не будешь использовать - потом оценишь. Плюс великолепный дизайн и удобство использования. Там достаточно понятные туториалы (хоть и на инглише).
|
|||
|
||||
| Xenon |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
Любитель, просто мне казалось, что это будет забиванием гвоздей микроскопом
А по бусту есть русский мануал? |
|||
|
||||
| nickless |
|
|||
![]() Гентозавр ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2976 Регистрация: 29.8.2005 Где: Germany Репутация: 19 Всего: 181 |
В принципе если хочешь сделать сам, то это не так уж сложно. Если ты знаешь (можно константу какую-нибудь в начале записать) какие классы у тебя в векторе и какие в них данные, то: запись - пишешь размер вектора = х - for (int i=0; i<x; i++) { - пишешь по очереди все статические данные - пишешь длину строки - пишешь саму строку } чтение - читаешь размер вектора, создаёшь его - for (int i=0; i<x; i++) { - читаешь по очереди все статические данные - читаешь длину строки, удлиняешь строку в классе до нужного размера - читаешь саму строку } -------------------- ![]() 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 |
|||
|
||||
| Xenon |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
nickless, у меня даже статики нет, только string поля.
Вот, чтобы проще было (код класса, адресса на объекты которого хранятся в деке:
А двунаправленный список объявлен так в классе Cmanager:
|
||||
|
|||||
| nickless |
|
|||
![]() Гентозавр ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2976 Регистрация: 29.8.2005 Где: Germany Репутация: 19 Всего: 181 |
Ну вот и добавь туда что-то вроде save_to_file(std::ofstream&) и Calbum(const std::ifstream&), которые пишут/читают year, потом длину genre, сам genre, длину artist, сам artist ...
Потом останется только записать кол-во элементов в deque и пройтись по нему итератором -------------------- ![]() 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 |
|||
|
||||
| Xenon |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
nickless, я только думаю ... Эти все данные представить в виде структуры, или просто подряд писать и все? И как лучше: записать размеры всех переменных, потом само содержимое, либо по-очередно размер/содержимое?
|
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Xenon, мое мнение - поочередно размер/содержимое. Получится скромненькая структурка.
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |