Russian Qt Forum
Ноябрь 24, 2024, 17:26 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как записать QMap <QString,T> в файл ?  (Прочитано 3240 раз)
virtual_root
Гость
« : Апрель 19, 2012, 20:07 »

Добрый вечер! Ребята,подскажите,пожалуйста, что не так я делаю. Мне необходимо записать в файл QMap <QString,Т>
где Т - структура.
Имею следующий код:
Код:
struct InfoNews{
    QString body;
    QString title;
    QDateTime date_from;
    QDateTime date_to;
    bool push;
    bool read;
    QString img;
};

 QMap <QString,InfoNews> m_mapNews;
...

QFile file(FILE_NAME);
    file.open(QIODevice::WriteOnly);
    QDataStream out(&file);
    out << m_mapNews;
    file.close();

При компиляции получаю следующую ошибку:
 error: no match for 'operator>>' in 'operator>>(((QDataStream&)((QDataStream*)in)), ((QString&)(& key))) >> value'

Что я не так написала?
Записан
Странник
Гость
« Ответ #1 : Апрель 19, 2012, 20:52 »

QDataStream в душе не чает, как работать с вашей структурой. реализуйте операторы << и >> для нее.

Код:
QDataStream &operator<<(QDataStream &out, const InfoNews &infoNews)
{
    out << infoNews.body;
    out << infoNews.title;
    out << infoNews.date_from;
    out << infoNews.date_to;
    out << infoNews.push;
    out << infoNews.read;
    out << infoNews.img;

    return out;
}
и >> аналогично.
« Последнее редактирование: Апрель 19, 2012, 20:54 от Странник » Записан
virtual_root
Гость
« Ответ #2 : Апрель 19, 2012, 21:45 »

спасибо большое! Помогло!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 21.