Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Serialize или как сохранить объект в файл 
:(
    Опции темы
Homer
Дата 7.5.2005, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



У меня имеются объекты вот такого класса
Код

class Element: public CObject
{
public:
    CString name;
    CString elemID;
    CRect mRect;
    CRectTracker tracker;
    CArray<CPoint,CPoint> lineA;
    CArray<CPoint,CPoint> lineB;
    CArray<CRect,CRect> pin;
};


но не получается их затолкнуть в архив, пытаюсь с помощью оператора <<, но выдает ошибку. Если из класса убрать массивы, то вроде работает. Подскажите пжл как можно это в файл запихнуть. Я уж не знаю, что и делать...

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


Лентяй
***


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

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



Homer а ты свой оператор<< для CArchive определил?




--------------------
Волны гасят ветер...
PM MAIL   Вверх
Homer
Дата 7.5.2005, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Наверно ты хотел сказать переопределил, Нет, я не переопределял, да и зачем, он же в принципе работает со всеми объектами, поддерживающими сериализацию. А мой класс наследует CObject, поэтому я так думаю, он и должен поддерживать сериализацию.
PM MAIL   Вверх
Fantasist
Дата 7.5.2005, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй
***


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

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



Цитата(Homer @ 7.5.2005, 17:00)
Наверно ты хотел сказать переопределил


Ну, я сказал "свой", а переопределять свой оператор уже как-то странновато. Тот который определен он не твой. А свой ты определяешь, переопределяя унаследованный.

Ты скажи, что за ошибка, я уже не помню подробности работы MFC-шной сериализации.



--------------------
Волны гасят ветер...
PM MAIL   Вверх
patt
Дата 8.5.2005, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



void CLinesDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
ar<<name;
ar<<elemID;
ar<<mRect;
ar<<tracker;
ar<<lineA.GetCount;
for (int j = 0; j < lineA.GetCount; ++j)
ar<<lineA[j]
.................................................
}
else
{
ar>>name;
ar>>elemID;
ar>>mRect;
ar>>tracker;
ar>>m_count;
for (int j = 0; j < m_count; ++j)
ar>>lineA[j]
.................................................
}
}


Похоже mRect и tracker то же педётся сохранять по частям : ar<<racker.top; .........
PM MAIL ICQ Skype GTalk   Вверх
Homer
Дата 8.5.2005, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



О! Спасибо, все работает.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




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


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

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