![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Syberex |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 15.9.2006 Где: Украина Репутация: нет Всего: нет |
Трабла такая , есть такая вот структура:
как мне записать массив таких структур в файл, а потом считать их целиком или произвольным доступом? --------------------
whole power in artificial intelligences |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
Syberex,
string - это std :: string? если да каждая запись в файле будет выглядеть следующим образом [<size_small + size_big + sizeof(long) + 500 + sizeof(int) * 52>]<size_small> <small> <size_big> <big> <mem> <char[500]> <int[50]> где число в [] показывает смещение следующей записи относительно адреса size_small Это сообщение отредактировал(а) MAKCim - 23.8.2007, 11:05 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| Syberex |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 15.9.2006 Где: Украина Репутация: нет Всего: нет |
это понятно, но как именно записать, какой код нужен, укого есть примерчик записи чтения структур?
--------------------
whole power in artificial intelligences |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
Syberex,
вот код
Это сообщение отредактировал(а) MAKCim - 23.8.2007, 11:51 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| Syberex |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 15.9.2006 Где: Украина Репутация: нет Всего: нет |
хм, интерестный вариант, но эта функция структурно зависимая, а если структура поменяется то всё переделывать, а как записать и считать чтоб только в функцию структуру передать?
--------------------
whole power in artificial intelligences |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
Можно добавить к структуре (классу) метод записывающий структуру в файл или поток, а так-же структуру читающую структуру из файла или(и) потока. Код который занимается загрузкой-сохранением не надо будет переделывать, даже если изменишь структуру.
|
|||
|
||||
| Алина |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 14.5.2005 Репутация: нет Всего: нет |
Можно попробовать работать с бинарными файлами. В такие файлы можно записывать структуру целиком.
#include <stdio.h> size_t fwrite(const void *ptr, size_t size, size_t n, FILE *stream); ptr - адрес, откуда будет начинаться коллекция блоков данных size - размер одного блока n - количество блоков stream - поток, куда записываем Всего будет записано n*size байтов, для работы с данными в таком режиме удобнее открыть файл как бинарный ("wb"):
|
||||
|
|||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
Алина,
весело будет, если среди членов будут динамические данные (либо объекты содержащие таковые) std::string как раз из этого разряда. по-моему, в этих условиях, правильнее всего определить соответствующий метод для структуры (если с++, ну и классом ее обозвать, если не хотим запутать врага). Это сообщение отредактировал(а) zkv - 26.8.2007, 05:53 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |