miércoles, 23 de marzo de 2011

Manipulación de datos tipo registro

Acceso a los campos de un registro

Se puede acceder a cada campo de un registro directamente utilizando un designador o selector de campo de la forma:

            NombreReg.NombreCampo

Los datos mostrados anteriormente en Empleado mediante una secuencia de sentencias de asignación:      

            Empleado.Nombre := `Chi-ki-tico´;

            Empleado.Edad := 34;

            Empleado.Domicilio := `Calle El Último Grito´;

            Empleado.Salario := 245320;

Una vez que los datos están almacenados en un registro, se pueden manipular de igual forma que otros datos en memoria.

            Write (Empleado.Nombre); (* Visualiza Chi-ki-tico *)

Operaciones sobre registros

Los procedimientos de lectura y escritura permiten únicamente números caracteres o cadenas. Un registro al ser una estructura compuesta (distintos tipos de datos) es preciso efectuar las operaciones de lectura y escritura individualmente.

Otra operación que se puede realizar entre registros es la asignación (copia del contenido de un registro en otro del mismo tipo). Si A y D son variables registro del mismo tipo, la sentencia:

                                   A := D

copia todos los valores asociados con el registro D al registro A.

Ejemplo:

Type

   Stock = record

                        Numeros : Integer;

                        Nombre : String[20];

                        Precio : Real;

                  end;

Var

   Articulo : Stock

 La sentencia WITH

La tarea de escribir el selector de campo completo cada vez que se referencia un campo de un registro es tediosa, sobre todo si el números es grande. La sentencia WITH permite referenciar el nombre del registro en su cabecera y posteriormente para llamar a algún campo sólo se necesita el nombre del campo y no el selector de campo completo, con el nombre del registro (por ejemplo, Edad en vez de Cliente.Edad).

   Curso Linux básico-medio Nivel certificación, 12 pagos y beca 50% alumnos y profesores
     
Sintaxis:

With Camporegistro do

         Begin

            (* Sentencias que hacen referencia a campos de Camporegistro *)

         End;

Camporegistro: Nombre o nombres de registros.

Sentencias: Relacionadas con los campos.

Ejemplo:

Program Ejemplo;

Type

   Empleado = record

                           Nombre : String [20];

                           Edad : Integer;

                           Empresa : String [30];

                         End;

Var

   Socio : Empleado;

   Deducciones : Real;

Begin

   With Socio do

      Begin

         Readln (Nombre);

         Neto := Salario - Deducciones;

         Writeln (Empresa);

      End;

End. 

No hay comentarios:

Publicar un comentario