Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сериализация числового массива, массив float 
:(
    Опции темы
Амортизатор
Дата 25.7.2005, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Как можно сериализовать массив float [N], можно это сделать без поэлементного сохранения?


--------------------
Поехали!
PM MAIL   Вверх
Coocky
Дата 25.7.2005, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

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



Нет!
Каждый элемент сохраняй!


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Амортизатор
Дата 25.7.2005, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ясно!


--------------------
Поехали!
PM MAIL   Вверх
Coocky
Дата 25.7.2005, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

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



Да, кстати, все МФС списки поддерживают сериализацию...
Попробуй с ними поработать..


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Амортизатор
Дата 27.7.2005, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



В CArray есть метод Serialize. Я так понимаю, нужно наследовать от этого класса и перегрузить CArray::Serialize(), и в перегруженной функции вызвать функцию для сериализации объекта? Нет ли примерчика?


--------------------
Поехали!
PM MAIL   Вверх
Coocky
Дата 27.7.2005, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

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



Примера, к сожалению нет..
Но ты прав, только так...
И еще-будь осторожен, если есть указатели-не вздумай проводить с ними сериализацию...!


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Earnest
Дата 27.7.2005, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Глупости ... скажите тоже - наследоваться ... smile
Достаточно специализировать шаблонную функцию SerializeElements для своего типа элемента. Вот ее прототип:
Код

template<class TYPE>
void AFXAPI SerializeElements(CArchive& ar, TYPE* pElements, int nCount);

Тогда можно сериализовать любой последовательный MFC-контейнер с вашими элементами, и не нужно никакого наследования...
Например, для массива (списка) float:

Код

template<>
void AFXAPI SerializeElements<float>(CArchive& ar, float* pElements, int nCount)
{
   if (ar.IsStoring())
   {
      ar.Write(pElements,nCount*sizeof(*pElements));
   }
   else
   {
      ar.Read(pElements,nCount*sizeof(*pElements));
    }
}


Главное, чтобы специализация была видна в месте вызова Serizlize...
На самом деле, для плоских типов данных этого делать не надо - сойдет стандартная реализация (она ровно это и делает). А вот для указателей или сложных типов - самое оно.




--------------------
...
PM   Вверх
Амортизатор
Дата 28.7.2005, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Спасибо. Привыкнуть к тому, что в MFC вместо ООП можно использовать во многих случаях макросы и шаблоны тяжеловато. smile


--------------------
Поехали!
PM MAIL   Вверх
Earnest
Дата 28.7.2005, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



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


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


 




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


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

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