Привет! Вот прочитал http://volvo71.narod.ru/faq_folder/records.htm про запись и у меня возникла куча вопросов. Сообственно они все так или иначе связаны с моим курсачом...
курсовой проект был по мультисписковой структурой реализованой в файле
для этого мс(мульти-списка) была реализованые такие типы даных
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;
Ты еще и не в том разделе ее создал Какая ж теория? Это уже чистой воды программирование...
rewrite(f);
rec.NextElem:=-1;
write(f,rec,rec);
CloseFile(f);
Стоп... Приведи информацию о том, какие данные хранятся у тебя в каждом из этих элементов мультисписка. Что это за поля NextElem/NextInf? Почему целочисленные? Что хранят? Чем типы TRecRayon, TRecWec и TReculica отличаются друг от друга (кроме названий), и зачем надо вводить три разных типа (и три разных процедуры, работающих с этими типами), вместо того, чтобы работать одной процедурой и интерпретировать данные, как тебе нужно?
в моем варенте задание реализация мс просходит в файле, тоесть все даны хранянся не в динамической памите а в файле! Поле NextElem - это своеродный указатель на слудующий элемент списка, поскольку файл типизированый то можно через процедуру seek добратся к записи. Поле NextInf - это указатель на под уровень.
Физическое представление структуры:
А вот остальные поля этоинформационные, но они могут быть разные, это просто у меня такой варант попался что 2 поля только, Имя и 1 поле информации.
type...
TName = string[30];
Tinf = string[254];
TRec = record
name : TName;
inf : Tinf;
NextElem : Integer;
nextInf : Integer;
end;
TRecRayon = TRec; { Запись данных о районе }
TFilerayon = file of TRecrayon;
TRecWec = TRec; { Запись данных о жэке }
TFilewec = file of trecwec;
TRecUlica = TRec; { Запись данных о Улицы }
TFileUlica = file of treculica;
TReckvart = record {Запись данных о квартире}
home : TInf;
namber : TInf;
inf : TInf;
kolkom : TInf;
kolkvmetr : TInf;
NextElem : Integer;
end;
TFilekvart = file of TReckvart;
TLigaRec = record
naiminovanie:string[20];
comands:integer;
shtab: string[20];
nextLigaRec:longint;
startClubRec:longint;
end;
TClubRec= record
nazvanie: string[20];
city:string[15];
FIOpres: string[20];
sponsor: string[20];
capitan: string[25];
StartTrenerRec:longint;
StartIgrokRec:longint;
NextClubRec:longint;
end;
TTrenerRec= record
FIOtrener: string[20];
specialn: string[15];
stazh:string[7];
kvalif:string[10];
NextTrenerRec:longint;
end;
TIgrokRec= record
FIOigroka:string[20];
Amplua:string[15];
zarplata: string[12];
contract:string[20];
NextIgrocRec:longint;
end;