Главная страница
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.111 c
1-1301292905
Alex_C
2011-03-28 10:15
2013.03.22
Перевод из координат экрана в пространство


2-1330951925
leklerk
2012-03-05 16:52
2013.03.22
Как изменить подсвойство dgEditing у свойства Options у DBGrid?


15-1334950195
Брррр!
2012-04-20 23:29
2013.03.22
Компиляция ассемблера


3-1277112330
alexnauz
2010-06-21 13:25
2013.03.22
Как заставить IBQuery или OraQuery вернуть пустой результат


2-1342770409
Andvitar
2012-07-20 11:46
2013.03.22
Програмное нажатие на Button 1 при изменении буфера обмена