IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> Записи с вариантной частью, приминение..
amega
сообщение 22.07.2009 23:35
Сообщение #1


?
***

Группа: Пользователи
Сообщений: 283
Пол: Мужской

Репутация: -  4  +


Привет! Вот прочитал статью про запись и у меня возникла куча вопросов. Сообственно они все так или иначе связаны с моим курсачом...
курсовой проект был по мультисписковой структурой реализованой в файле
Прикрепленное изображение
для этого мс(мульти-списка) была реализованые такие типы даных


type
  TName      = string[30];
  Tinf       = string[254];

  TRecRayon       = record        {Запись данных о районе}
            name      : TName;
            inf       : Tinf;
            NextElem  : Integer;
            nextInf   : Integer;
            end;
  TFilerayon     = file of TRecrayon;

  
  TRecWec       = record        {Запись данных о жэке}
            name      : TName;
            inf       : Tinf;
            NextElem  : Integer;
            nextInf   : Integer;
            end;
  TFilewec     = file of trecwec;

  TReculica       = record        {Запись данных о Улицы}
            name      : TName;
            inf       : Tinf;
            NextElem  : Integer;
            nextInf   : Integer;
            end;
  TFileUlica     = file of treculica;

  TReckvart   = record         {Запись данных о квартире}
            home      : TInf;
            namber    : TInf;
            inf       : TInf;
            kolkom    : TInf;
            kolkvmetr : TInf;
            NextElem  : Integer;
            end;
  TFilekvart  = file of TReckvart;


Но неудобство составило при связивание уровней, что нужно писать для каждого типа свою процедуру

  procedure Init_FileRayon(var f:TFileRayon);
  procedure Init_Filewec(var f:TFileWec);
  procedure Init_Fileulica(var f:TFileulica);
  procedure Init_Filekvart(var f:TFilekvart);
.....



А теперь вопросы:
Если написать общий тип, для всех уровней ведь многие поля одинакоы,

Type
  Trec= Record
  ....{ общие поля }
  Case byte of 
    1: (...); { поля для 1 уровня }
    2: (...);  {поля для 2 уровня}
    ...
  end;


, то как это отобразится на запрашиваемой памити, будет расход больше или меньше?

При работе с переменной этого типа, если мы прочитаем что-та в "1", а потом во второе "сигнальное значение", то мы потеряем информацию которая хранилась в первом?

Зы: Volvo извини что создал тему на этом форуме, а не на том что указан на сайте

Сообщение отредактировано: amega - 22.07.2009 23:38
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 27.07.2025 3:17
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"