Record

From Lazarus wiki
Revision as of 15:54, 24 March 2012 by Vincent (talk | contribs) (Text replace - "delphi>" to "syntaxhighlight>")

Deutsch (de) English (en) español (es) suomi (fi) français (fr) magyar (hu) português (pt) русский (ru)

A highly structured data type in Pascal .

While simple data structures such as arrays or sets consist of elements all of the same type, a record can consist of a number of elements of different types, and can take on a huge complexity. Each separate part of a record is referred to as a Field.

Some examples of records:

 Type
   ExampleRecord = Record
                     Values: array [1..200] of real;
                     NumValues: Integer; { holds the actual number of points in the array }
                     Average: Real { holds the average or mean of the values in the array }
                   End;

   Member = Record
              Firstname, Surname : string;
              Address: array [1..3] of string;
              Phone : Integer;
              Birthdate: TDateTime;
              PaidCurrentSubscription: Boolean
            End;

A record is treated by the program as a single entity, and for example a whole record can be copied (provided the copy is of the same type) thus:

 Var a, b : Member;
 Begin
   { assign values to the fields in Record a }
   ...
   ...
   b := a
 End;

Individual fields are accessed by placing a dot between the record name and the field name thus:

  a.firstname := 'George';
  a.surname := 'Petersen';
  a.phone := 789534;
  a.PaidCurrentSubscription := TRUE;

Alternatively, the whole series of fields can be made available together using the WITH construct:

 with a 
   do
   begin
     firstname := 'George';
     surname := 'Petersen';
     phone := 789534;
     PaidCurrentSubscription := TRUE
   end;

Records are widely used in Pascal, to group data items together logically.