![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Гость_User |
|
|||
|
Unregistered |
Если есть некоторый объект object класса class_name с элементами-данными, и эти данные необходимо записывать, а затем считывать из файла будет ли корректно использование конструкций
write(f_handler, object, sizeof(class_name)) , затем где-нибудь read(f_handler, object2, sizeof(class_name)) или надо данные по отдельности записывать? |
|||
|
||||
| srd |
|
|||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 27 Всего: 49 |
В общем случае - нельзя.
-------------------- Не смей читать мою подпись!!! |
|||
|
||||
| kometa_triatlon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 384 Регистрация: 7.1.2005 Где: Киев Репутация: 2 Всего: 6 |
Здесь лучше всего использовать MFC-классы CArchive, CFile и сериализацию.
-------------------- Всё очень просто: сказки обман, Солнечный остров скрылся в туман, Замков воздушных не носит земля, Кто-то ошибся, ты или я. -------------- Программирование - самое большое удовольствие, которое вы можете получить, будучи одетым. |
|||
|
||||
| ST1 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 20.7.2005 Где: Уфа Репутация: нет Всего: 1 |
Надо только на чистом C/C++. Как бы записать данные в инкапсулированном виде, не поотдельности. А по отношению к структуре write/read годится? Это сообщение отредактировал(а) ST1 - 18.9.2005, 13:27 |
|||
|
||||
| srd |
|
|||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 27 Всего: 49 |
Попробуй boost::serialization. Правда может оказаться, что для твоих задач это слишком мощная библиотека - как забивание гвоздей микроскопом -------------------- Не смей читать мою подпись!!! |
|||
|
||||
| ST1 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 20.7.2005 Где: Уфа Репутация: нет Всего: 1 |
Да действительно, это слишком круто. Неужели встроенными средствами C, записать данные объекта класса с дальнейшим корректным чтением нельзя. |
|||
|
||||
| Denn |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 6.8.2005 Репутация: нет Всего: 2 |
ST1 у тебя в классе могут быть указатели, как их можно будет восстановить простым чтением класса в память? Сериализация MFC не настолько проста, как кажется. там также приходится в конкретных случаях делать чтение / запись в CArchive непосредственно, думаю, это не сильно будет отличаться от read / write стандартных библиотек.
|
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
конечно, можно - записывать по одному полю... различные значения так или иначе надо писать в каком-то формате вот, например, вопрос: как сохранять указатель? 1. сохранить объект, на который он указывает 2. сохранить что-то вроде индекса этого объекта (может, он уже был сохранен) 3. иногда даже может понадобиться сохранять реальное значение указателя так что в любом случае надо как-то сообщить, что именно нужно делать с каждым полем... а раз так, то можно это сделать частью кода сохранения конкретного поля... Это сообщение отредактировал(а) maxim1000 - 18.9.2005, 15:21 -------------------- qqq |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |