Records
Oft steht man vor der Aufgabe Variable unterschiedlichen Typs zu einer gemeinsamen Datenstruktur zu verbinden. So könnte man zum Beispiel Personendaten, wie Name, Adresse, Geburtsdatum und Schuhgröße zu einem großen Datum zusammenfassen. Für solche Zusammenfassungen verwendet man Records. Diese werden folgendermaßen deklariert:
Name : record
Variable1 : Typ1;
Variable2 : Typ2;
...
end;
Die einzelnen Variablen können nun einen beliebigen Typ haben. Der Zugriff auf den Inhalt eines Records erfolgt über den Punkt-Operator. Dabei wird zuerst der Name des Records geschrieben und dann mit einem Punkt dazwischen der Name der betreffenden Variablen.
Beispiel: |
Im folgenden Beispiel wird ein Record zur Speicherung von Personendaten deklariert:
type
TPerson : record
FirstName : string[20];
LastName : string[50];
Weight : double;
Height : double;
Male : boolean;
end;
Um zum Beispiel den Body Mass Index einer Person "IrgendWer" zu berechnen würde man wie folgt vorgehen:
var
IrgendWer : TPerson;
BMI : double;
....
BMI := Irgendwer.Weight/sqr(Irgendwer.Height);
....
|
Hat man innerhalb eines Code-Abschnitts öfter auf die selbe Record-Variable zuzugreifen, so kann man die Schreibarbeit mit Hilfe des with-Statements verringern. Die Berechnung des Body Mass Index aus dem obigen Beispiel würde man dann folgendermaßen schreiben:
with IrgendWer do
BMI := Weight/sqr(Height);
Persönl. Anmerkung: |
Ich verwende das with-Statement eher selten (nur wenn wirklich viele Referenzen auf einen Record notwendig sind), da es neben der schlechteren Lesbarkeit einen gravierenden Nachteil beim Debuggen hat: Der Debugger löst das with-Statement nicht auf und zeigt daher die Inhalte der Recordvariablen nicht an. |
|