Record

From Lazarus wiki
Revision as of 06:12, 22 July 2008 by Djzepi (talk | contribs)
Jump to navigationJump to search

Deutsch (de) English (en) español (es) suomi (fi) français (fr) magyar (hu) polski (pl) 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:

<delphi>

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;

</delphi>

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:

<delphi>

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

</delphi>

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

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

</delphi>

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

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

</delphi>

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