unit gedaechtnis;    { 12.11.2000}
{ Dient dazu, die Daten des Objekts (Haus) zu speichern und lesen}
{ Erweitert am 5. 12. 2000 um Konvertierungsfunktionen. }

interface
         type vektor = array[1..3] of real;
         type punkt = record
                 x,y,z : real;
                 end;
         type eckdaten = record
                 A,B,D,E,I : punkt;
                 end;

         procedure speichere(dateiname : string; daten : eckdaten);
         function lade(dateiname : string) : eckdaten;
         function rec2arr(strukt : punkt) : vektor;
         function arr2rec(strukt : vektor) : punkt;


implementation

procedure speichere(dateiname : string; daten : eckdaten);
         var
                 datei : file of punkt;

         begin
         assign(datei, dateiname);
         rewrite(datei);
         write(datei,daten.A);
         write(datei,daten.B);
         write(datei,daten.D);
         write(datei,daten.E);
         write(datei,daten.I);
         close(datei);
         end;



function lade(dateiname : string) : eckdaten;
         var
                 datei : file of punkt;

         begin
         assign(datei, dateiname);
         reset(datei);
         read(datei,lade.A);
         read(datei,lade.B);
         read(datei,lade.D);
         read(datei,lade.E);
         read(datei,lade.I);
         close(datei);
         end;

function rec2arr(strukt : punkt) : vektor; { Wandelt Datensrukturen in Records zu Arrays um }
         begin
         rec2arr[1] := strukt.x;
         rec2arr[2] := strukt.y;
         rec2arr[3] := strukt.z;
         end;

function arr2rec(strukt : vektor) : punkt; { wandelt Datensrukturen in Arrays zu Records um }

         var temp : punkt;

         begin
         temp.x := strukt[1];
         temp.y := strukt[2];
         temp.z := strukt[3];

         arr2rec := temp;
         end;

end.
