Es necesario acceder de forma aleatoria a los campos de un registro, pero no puede ser calculado porque los campos pueden tener distinto tamaño, por lo que se crea un SELECTOR DE CAMPO o identificador. Se pueden realizar registros anidados.
Ejemplo de registro o record en pascal:Un registro puede tener varias variantes con un campo discriminante siempre presente, el cual elige una variante o otra según se indique. En el caso de ser boolean se elige la que sea true.
type
tFecha = record
dia: 1..31;
mes: 1..12;
año: 1..2100;
end;
El campo discriminante tiene que ser de tipo ordinal, no puede ser anónimo y no enlazable.
Alguno de los campos de alguna variante puede ser un registro, el cual puede tener una parte variante también, etc.
Un error muy común es intentar acceder a un comapo de una variante no activa, porque en ese caso esa variante no existe. Ej:
RECORD alumno
nombre → campo1
direccion → campo2
edad → campo3
etc
EL FORMATO GENERAL DE UNA ESTRUCTURA ES:
TYPE
Nomreg = RECORD
Campo1: tipo dato
Campo2: tipo dato
. . . . . .
end;