Нұсқалы өрістер (Записи с вариантами) ТР-да нұсқалы өрістер деп аталатын жазуларды қолдануға болады.
Мысалы:
Var
D : record
X : integer;
case V: boolean of
True : (Y_one : integer);
False : (Y_two : array [1..4] of real)
end;
Мұндағы, Х өрісі – анықталған (фиксирленген). V өрісі – True және False мәндеріне ие болатын белгі (признак) өрісі. Үшінші өріс әр түрлі нұсқаларғка ие бола алады. Ол V өрісінің мәніне байланысты (D.Y_one немесе D.Y_two). Нұсқалық өріс тек біреу және олл соңында жазылады. Кез келген уақытта нұсқалардың ішінен тек біреуімен ғана жұмыс істеуге болады.
CASE... OF нұсқалық бөлікті ашатын, таңдаау операторына ұқсас болып көрінгенмен, ол тек нұсқалық бөліктің басталғанын білдіреді. Сондықтан таңдау операорындағы сияқты END сөзі қойылмайды. Жалғыз қойыылатын талап, таңдай кілті алдын-ала анықталған немесе стандартты типімен анықталуы керек. Бірақ бұл тип келесі вариантты өрістердің санына да, тіпті таңдау тұрақтысының мінездемесіне де өз әсері н тигізбеуі керек. Турбо Паскальда таңдау кілті әлдебір реттелген және программаның орындалатын бөлігінде мән меншіктеуге болатын айнымалы ретінде алғанмен, оныі өрісті таңдауға әсері тимейді: яғни, таңдау тұрақтысының мәндері Турбо Паскальда еркін таңдалады.
Мысалы:
type
reel = record
a : Byte;
b : Word;
end;
rec2 = record
с : longint;
case x : Byte of
1 : (d : Word);
2 : (e : record
case Boolean of
3 :( freel);
3 :( g Single);
'3':( с Word);
end)
end;
var
r : rec2;
begin
r.x := 255;
if r.e.g = 0 then
WriteLn('O.K. ')
else
WriteLn(r.e.g)
end.
Бұл мысалда case Boolean of сөйлемді таңдау кілті ретінде логикалық типті сипаттайды. Ол TRUE және FALSE мәндерінің бірін қабылдайды. Келесі нұсқаларды таңдау тұрақтыларының жалпы саны 3 жәнебұл логикалық типке жатпайтын, екеуі қайталанатын мәндер қабылдайды. Өрістер атаулары өзлері сипатталған жазу шегінен аспауы керек.