Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> fstream библиотека 
:(
    Опции темы
Oik741
Дата 11.11.2009, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 11.11.2009

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



Добрый день, подскажите как(желательно код) записать в файл объект(в базе уже могут существовать объекты сохранённые раннее) а потом прочитать нужный мне объект, n-ный по счёту используя библиотеку fstream

Это сообщение отредактировал(а) Oik741 - 11.11.2009, 20:57
PM MAIL   Вверх
sdukshis
Дата 11.11.2009, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 23.3.2009

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



Если файл бинарный и все объекты могут поместиться в фиксированный объем байтов, то можно так:
Научить все используемые классы представлять себя в виде набора байтов (char*) и использовать неформатируюемый вывод f.write().

Для считывания n-ого объекта отсчитать от начала файла n*фиксированный размер.
Считать считать фиксированный размер байтов и научить класс инициализироваться на основе прочитанного набора байтов.

Если файл текстовый, то можно проще
Каждый объект представляется одной строкой. Далее просто перегрузить операторы потоковые ввода и вывода для нужного объекта.


Это сообщение отредактировал(а) sdukshis - 11.11.2009, 20:59
PM MAIL   Вверх
Oik741
Дата 11.11.2009, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 11.11.2009

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



а если не затруднит можешь написать код как пример?)
PM MAIL   Вверх
bsa
Дата 12.11.2009, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Код
struct Entry{
...
};
...

fstream file("file.dat", std::ios::binary);

Entry array[100];
...
file.write(reinterpret_cast<const char*>(&array[20]), sizeof(Entry));

PM   Вверх
Oik741
Дата 12.11.2009, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 11.11.2009

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



не сочтите за наглость, а на чтение?)
PM MAIL   Вверх
Alca
Дата 12.11.2009, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 2
Всего: 50





--------------------
PM WWW ICQ Skype Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




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


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

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