Record/de

From Lazarus wiki
Revision as of 22:54, 14 August 2012 by Billyraybones (talk | contribs) (initial german translation)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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)

Ein hochstrukturierter Datentyp in Pascal. Im Deutschen ist für "Record" auch die Bezeichnung "Datensatz" üblich.

Im Gegensatz zu einfachen Datenstrukturen wie Arrays oder Sets, die aus lauter Elementen desselben Typs bestehen, kann ein Record aus einer Anzahl von Elementen aus unterschiedlichen Typen bestehen, und kann dadurch eine hohe Komplexität erreichen. Ein einzelner Teil eines Records wird als Feld (Field) bezeichnet.

Einige Beispiele für Records:

 Type
   ExampleRecord = Record
                     Values: array [1..200] of real;
                     NumValues: Integer; { enthält die aktuelle Anzahl von Punkten im Array }
                     Average: Real { enthält den Mittelwert der Feldwerte des Arrays }
                   End;

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

Ein Record wird vom Programm als eine Einheit behandelt. Z.B. kann ein Record als Ganzes kopiert werden (vorausgesetzt die Kopie ist vom selben Typ):

 Var a, b : Member;
 Begin
   { weise den Feldern im Record a jetzt Werte zu}
   ...
   ...
   b := a
 End;

Auf individuelle Felder kann zugegriffen werden, indem man einen Punkt zwischen dem Recordnamen und dem Feldnamen stellt, also folgendermaßen:

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

Alternativ dazu, erreicht man sämtliche Felder auch mittels des WITH-Konstrukts:

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

Records werden in Pascal häufig verwendet, um Datenelemente logisch zu gruppieren.