Un registro o record sirve para agrupar distinto tipo de datos pero que deben estar juntos. Por ejemplo los datos de una persona, nombre, edad, fecha nacimiento, sexo, etc.
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:
type
tFecha = record
dia: 1..31;
mes: 1..12;
año: 1..2100;
end;
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.
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.