Главная страница
    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.45 MB
Время: 0.063 c
2-1345986998
Wadimka
2012-08-26 17:16
2013.03.22
Кто-нибудь работал с компонентом SecureBridg?


15-1338971575
Cobalt
2012-06-06 12:32
2013.03.22
Самый лучший сотрудник российского оделения Embarcadero


2-1346240125
s_t_d
2012-08-29 15:35
2013.03.22
Диалог SaveDiaalog не сохраняет файл...


15-1349123402
Юрий
2012-10-02 00:30
2013.03.22
С днем рождения ! 2 октября 2012 вторник


15-1351925332
LLLL
2012-11-03 10:48
2013.03.22
Странный вопрос о браузерах





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский