Главная страница
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.176 c
15-1331325002
Юрий
2012-03-10 00:30
2013.03.22
С днем рождения ! 10 марта 2012 суббота


15-1331806770
Musecd
2012-03-15 14:19
2013.03.22
Как в Delphi 2010 (2007-XE2) настроить цвет выделения кода ?


6-1258114919
stas
2009-11-13 15:21
2013.03.22
ICS SMTP клиент


15-1335039032
Andryk
2012-04-22 00:10
2013.03.22
Всем привет, тутже есть математики?)))


15-1351694777
Handler
2012-10-31 18:46
2013.03.22
как будет на английском