|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.01.2012, 14:05 | #1 |
Форумчанин
Регистрация: 29.10.2011
Сообщений: 141
|
Вопрос про запись данных в файл.
1 шаг. Я создаю файл
2 шаг. инициализирую объекты и присваиваю им значение с клавиатуры 3 шаг. создаю список. список содержит в себе только указатель на первый элемент списка и функции. сами объекты не содержит(!). 4 шаг. идя по указателям от первого к последнем элементу записываю их в двоичный файл вместе с адресами элементов. 5 шаг. извлекаю из двоичного файла первый элемент, пытаюсь перейти по указателю к следующему элементу списка, а там уже записано что то новое, т.к "переменные существую пока работает программа или функция в которой они объявлены" Вопрос. Как мне едрить его налево записать в файл списковую структуру, хранящую данные? |
05.01.2012, 14:10 | #2 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
|
|
05.01.2012, 14:17 | #3 |
Форумчанин
Регистрация: 29.10.2011
Сообщений: 141
|
Что значит описание структуры данных, можешь уточнить? ><
|
05.01.2012, 14:26 | #4 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Список, дек, вектор - не важно. Все это - контейнеры, которые по разному хранят набор своих элементов.
В файл тебе нужно сохранить значения самих элементов, а не адреса на них. Кроме того, тебе нужно сохранить некую шапку - информацию о том, как при загрузке данных из файла можно восстановить твой контейнер. Допустим, у тебя в контейнере есть три элемента типа int : 1,2, 3; Ты просто тупо сохраняешь в файла все три элемента в бинарном режиме. Получится файл длиною в sizeof(int)*3 Зная что в файле хранятся только значения элементов, и что все они имеют тип инт - ты можешь определить сколько точно там элементов. А зная, сколько точно там элементов, ты можешь создать заново свой контейнер на эти три элемента. А потом считывать элемент за элементом из файла и добавлять очередной значение в контейнер. По итогу, после загрузки, в контейнере окажутся те же самые элементы, что были при сохранении. а фактические адреса элементов тебя мало волнуют. |
05.01.2012, 15:57 | #5 | |
Форумчанин
Регистрация: 29.10.2011
Сообщений: 141
|
Цитата:
я вот записываю сколько то элементов типа Т. n=sizeof(FILE)/sizeof(T);//количество записанных элементов в файл. то как их читать мне надо записать в сам двоичный файл? Или сделать в моей программе функцию как читать из такого файла? |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) | Albert2008 | Общие вопросы Delphi | 4 | 21.08.2008 15:33 |
У меня вопрос про базы данных,а точнее про таблицы!!! | Alexij | Общие вопросы Delphi | 1 | 13.04.2008 23:24 |
запись данных в файл | Артэс | Общие вопросы C/C++ | 13 | 09.06.2007 22:01 |