Сохранение в файл сложной структуры данных

Тема в разделе "LANGS.C", создана пользователем LittleFox, 2 мар 2009.

  1. LittleFox

    LittleFox New Member

    Публикаций:
    0
    Регистрация:
    1 апр 2008
    Сообщения:
    36
    привет всем! Помогите разобраться, нужно сохранить в файл вектор, как это делается?

    typedef struct tmp
    {
    std::string a;
    std::vector <char> b;
    };

    std::vector <tmp> var_to_file;
     
  2. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    boost::serialization?
     
  3. LittleFox

    LittleFox New Member

    Публикаций:
    0
    Регистрация:
    1 апр 2008
    Сообщения:
    36
    возможно, а можно на примере пояснить как это сделать, чтобы записывалось и читалось?
     
  4. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    censored
    Думаешь авторы таких вопросов знают про буст? :)
     
  5. LittleFox

    LittleFox New Member

    Публикаций:
    0
    Регистрация:
    1 апр 2008
    Сообщения:
    36
    Думаю что тут есть кто знает как это сделать легко и быстро, вручную не хочется делать, должен быть правильный способ. Зато попалась ссылка на boost.org/doc/libs/1_36_0/libs/serialization/doc/index.html, тема еще актуальна
     
  6. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    Как вариант http://dobrokot.nm.ru/WinnieSerialization/WinnieSerializationLibrary0.2.zip (один запрос в гугл ;)
     
  7. LittleFox

    LittleFox New Member

    Публикаций:
    0
    Регистрация:
    1 апр 2008
    Сообщения:
    36
    блин, нифа не понятно, ладно, большое спасибо, буду разбираться
     
  8. Folk Acid

    Folk Acid New Member

    Публикаций:
    0
    Регистрация:
    23 авг 2005
    Сообщения:
    432
    Адрес:
    Ukraine
    Если компонента не поддерживает нативно методы для работы с потоками, то единственным верным способом будет написать for (;;) {array += ...} / for (;;) {... = array}
    ... Развели флейма на два экрана из ничего :)
     
  9. МПМ

    МПМ New Member

    Публикаций:
    0
    Регистрация:
    4 авг 2006
    Сообщения:
    14
    Ответ был правильный. Сериализация.
    http://en.wikipedia.org/wiki/Serialization

    Помню в институте на мфц делали. Но вот что там надо кроме методов обхода списка... В упор не скажу.
    Конечно еслибы это было просто С то можно былобы имея указатель на начало данных и их размер, просто ронять их в файл сразу целиком или по очереди. Но ведь это с++. тут всё просто....

    пс: вот филосовский вопрос, когда разбираться с тем что уже создано до нас, сложнее и дольше, имеем ли мы моральное право оправдываясь этим, создать своё?
     
  10. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    LittleFox

    Бугага, ты на чем пишешь-то, на C, или на C++?


    censored

    Майн готт, и здесь он)))


    Folk Acid

    Это называется "В С++ нет рефлекшена".


    МПМ

    Ого, в институтах знают что такое сериализация.
     
  11. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    Ну дык, популярный товарисчь, яндекс, гайджин, что там еще?