Records

In Dateien sind z.B. die persönlichen Daten (Name, Vorname, Alter, Gehaltsgruppe etc.) von verschiedenen Personen gespeichert. Alle Datensätze haben die gleiche Struktur. Solch einen Datensatz (engl.: record) kann man auch in Pascal definieren. In Delphi-Konvention beginnen die Bezeichner für  Typen mit einem 'T'.

type
TDatensatz = record
               name, vorname : string;
               alter : integer;
              end;
 

Als nächstes deklariert man Instanzen dieses neuen Typs mit  var otto, hugo :TDatensatz;


Um die einzelnen Datenfelder mit Inhalten zu füllen geht man folgendermaßen vor:

otto.name := 'otto' 
otto.vorname := 'Peter';
otto.alter : 27;

Einfacher geht es auch so:

with otto do begin
  name := 'otto';
  vorname := 'Peter'
  alter := 27;
end;

Um den Datensatz z.B. in einer Liste auszugeben, ordnet man jeder Datenzelle die entsprechende Information zu:

with StringGrid1 do begin
  Cells[0,1] := otto.name;
  Cells[1,1] := otto.vorname;
  Cells[2,1] := IntToStr(otto.alter);
end;

Dateien, wie z.B. Adressbücher sind natürlich erst interessant, wenn man sie auf (nicht.flüchtigen) Datenspeichern abspeichern kann. Dazu definiert man sich im Pascalprogramm eine Variable vom Typ file of TDatensatz in der man die gesammelten Daten auf der Festplatte abspeichert. Die entsprechenden Anweisungen sind in folgender Prozedur zusammengefasst. Die entsprechenden Daten werden aus dem StringGrid1 ausgelesen.

procedure TForm1.SpeichernBtnClick(Sender: TObject);
var ds : TDatensatz;   
    n : integer;
    datei : file of TDatensatz;
begin
  Assignfile(datei,'otto.db');      
  rewrite(datei);
  for n := 1 to z-1 do begin
    ds.name := StringGrid1.Cells[0,n];
    ds.vorname := StringGrid1.Cells[1,n];
    ds.alter := StrToInt(trim(StringGrid1.Cells[2,n]));
    write(datei,ds);
  end;
CloseFile(datei);
end;

Aufgaben

 

Das Programm datei.pas enthält alle Ansätze, um eine kleine Dateiverwaltung zu programmieren. Erweitere es um folgende Komponenten: Datei laden / Datensatz löschen / Datensätze sortieren.

Zurück zu Delphi

© Dietrich Praclik