Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Как спроектировать класс   Найти похожие ветки 

 
misha   (2012-03-01 01:52) [0]

Доброго времени суток,

Помогите, пожалуйста, решить задачку..

Существует нетипизированный файл, в котором хранятся списки квартир, в которых живут люди (список людей), у которых есть имена и возраст.
Как спроектировать класс так, чтобы к данным можно было обратиться в таком виде:
city.apartments[2].persons[1].age := 20;

Я думал создать классы TCity, TApartment, TPerson.
В конструкторе каждого предыдущего выполнять считывание/создание массива city -> apartment, apartment -> persons.
У TPerson прописать свойства Age, Name, сеттеры и геттеры которых открывают файл и вносят изменения.
Но мне придётся каждый раз открывать файл, считать где именно хранятся изменяемые данные. Может есть какое-то более красивое решение?

p.s.: или просто не надо на ночь глядя решать такие задачи?


 
Германн ©   (2012-03-01 02:07) [1]


> Существует нетипизированный файл, в котором хранятся списки
> квартир, в которых живут люди (список людей), у которых
> есть имена и возраст.

Нетипизированный файл означает отсутствие какой-либо структуры.
Так вам именно "придётся каждый раз открывать файл, считать где именно хранятся изменяемые данные."
Но может вы неправильно поняли тип файла?


 
misha   (2012-03-01 02:14) [2]

Согласен. Я имел ввиду, что может быть разное количество человек, у них имена разной длинны. Всё это представлено в виде:
Заголовок+Данные
В заголовке описывается тип данных и его размер. И суть в том, что нельзя посчитать позицию, с которой будет записан какой-то параметр. Надо пройти весь путь к нему.


 
misha   (2012-03-01 02:15) [3]

Германн, спасибо. Я понял Ваш ответ.
Тогда буду так и работать.
Доброй ночи :)


 
icWasya ©   (2012-03-01 09:36) [4]

А для произвольного доступа делаются индексы. То есть дополнительный файл, содержащий, например записи одинакового размера, и указывающие на начало структуры в основном файле.
Минусы - дополнительный геморрой при записи,
Плюсы - ускорение при поиске.


 
Anatoly Podgoretsky ©   (2012-03-01 10:01) [5]

Использовать БД



Страницы: 1 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.05 c
2-1343366420
EgorovAlex
2012-07-27 09:20
2013.03.22
Хранение данных в dll, используемой несколькими процессами


15-1352554012
Артём
2012-11-10 17:26
2013.03.22
Написание программ


15-1329149862
Alex555
2012-02-13 20:17
2013.03.22
Можно ли как-то посмотреть вот это видео


15-1347048410
guest
2012-09-08 00:06
2013.03.22
перехват skype..


15-1345572518
Dennis I. Komarov
2012-08-21 22:08
2013.03.22
БИК update online