Záznamy v Pascale sa dajú označiť za predchodcov objektov. Sú to premenné, obsahujúce podradené premenné rôzneho typu.
Predstavte si, že máte uchovávať údaje o európskych krajinách. Napríklad záznam Slovensko typu TKrajina
môže obsahovať dve celočíselné položky (Rozloha, PocetObyvatelov) a reťazcovú položku HlavneMesto.
Typ záznamu sa podľa zvyku začína písmenom T (napr. TBudova
).
Máme dve možnosti - buď deklarujeme priamo premennú:
var Zaznam: record Vlastnost: integer; InaVlastnost: string; end;
alebo najprv definujeme nový typ a potom vytvoríme premennú tohto typu. Využijeme druhú možnosť.
program ludia; type TClovek = record Meno, Priezvisko: string; {2 retazce} RokNarodenia: word; {cele cislo} end; var Ujo: TClovek; ...
Teraz jednotlivým položkám záznamu Ujo priradíme hodnoty. Potom ich môžeme vypísať. Oddeľovačom názvu záznamu a jeho položiek je bodka.
... begin Ujo.Meno := 'Jozko'; Ujo.Priezvisko := 'Mrkvicka'; Ujo.RokNarodenia := 1850; write(Ujo.Meno, ' ', Ujo.Priezvisko); writeln(' bol narodený r. ', Ujo.RokNarodenia); end.
Jeden záznam môže obsahovať iný záznam. Napríklad človek má okrem už spomenutých údajov (meno, priezvisko, rok narodenia) aj adresu, ktorá obsahuje ulicu a mesto. Upravíme teda predchádzajúci kód.
type TClovek = record Meno, Priezvisko: string; {2 retazce} RokNarodenia: word; {cele cislo} Adresa: record {podradeny zaznam} Ulica, Mesto: string; end; end;
Použitie je dosť jednoduché - záznamy a podzáznamy taktiež oddeľujeme bodkou.
Ujo.Adresa.Ulica := 'Neznama'; Ujo.Adresa.Mesto := 'Hraskovo';
Ak chceme nejaký záznam používať dosť veľa krát za sebou, nemusíme k nemu pristupovať vždy pomocou tvaru záznam.položka
. Miesto toho môžeme použiť kľúčové slovo with
.
with Ujo do begin Meno := 'Jozko'; Priezvisko := 'Mrkvicka'; RokNarodenia := 1850; Adresa.Ulica := 'Neznama'; Adresa.Mesto := 'Hraskovo'; end;