Главная страница
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.48 MB
Время: 0.065 c
15-1351110603
Юрий
2012-10-25 00:30
2013.03.22
С днем рождения ! 25 октября 2012 четверг


15-1338975632
Pro_Docent
2012-06-06 13:40
2013.03.22
Кто хочет немного физики?


3-1285160032
yurikon
2010-09-22 16:53
2013.03.22
Событие по смене записи


15-1347564415
Guest
2012-09-13 23:26
2013.03.22
Где можно узнать количество АЛУ и физических регистров процессора


3-1277875013
samalex
2010-06-30 09:16
2013.03.22
Компонент типа TListBox, но с привязкой к БД