| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Запись двухсвязного списка в файл |
| Автор: Jade 13.12.2006, 10:09 | ||||
В общем есть двухсвязный списочек - имитация базы данных о животных, например.
Использую такие переменные -
Т.е. указатели на первый, последний и текущий элементы. На форме красиво добавляются, удаляются и прокручиваются по одному все элементы. Проблема - записать этот список в какой-то бинарный файл и потом считать его оттуда. Делаю File of TAnimal - тогда как обратиться к связям? Или File of ptr, тогда будут сами указатели. Буду очень благодарен за помощь. |
| Автор: Romkin 13.12.2006, 10:39 |
| Указатели в файл не пишутся. Более того, записать в файл именно двухсвязный список - задача нетривиальная, если сохранять возможность дозаписи. Пиши просто последовательно записи без полей указателей, при считывании - создавай новый узел, заполняй полями из файла, устанавливай указатели. Не надо делать в файле связи. PS. И вообще, зачем тебе двухсвязный список? Поизвращаться хочется? Он очень редко нужен, и явно у тебя - не тот случай. Есть TList, TObjectList, TCollection - неужели не подходят? |
| Автор: Alexeis 13.12.2006, 11:08 |
Можно просто их пронумеровать, а вместо указателей писать номер элемента на который он должен ссылаться т.е. номер предыдущего или предшественика. |
| Автор: Jade 19.12.2006, 04:52 |
| хм... объясните пожалуйста мне тупому как именно считать. добавлять в записи еще и поле для нумерации? а как считывать потом? |
| Автор: Romkin 19.12.2006, 09:14 |
| ЗАчем поле для нумерации? Ты как список создаешь, ведь наверняка создаешь узел, заполняешь его, а потом добавляешь в начало/конеч списка. Что мешает взять файл записей с данными, пройти его последовательно, и для каждой записи создать узел, заполнить его данными из этой записи, и вставить в список? Получается - последовательно проходим файл, и одновременно последовательно наращиваем список. |