is-Logo

PAT 01 -  V. 2.2
- Aufgabe und Hinweise -

S. Spolwig

[Home | Unterrichtssequenzen]
[Startseite]

Page down

Laden und Speichern der Objekte aus der Patientenliste

Das Sequenzdiagramm zeigt die Botschaften und den Datenfluss beim Laden und nachfolgendem Anzeigen eines Patienten.

Botschaft
  Datenfluss

 

Es gibt sehr unterschiedliche Verfahren, um Daten auf ein Speichermedium zu schreiben. Wir verwenden eine OOP-gerechte Methode, bei der die Objekte selbst wissen, wie sie sich (ihre Attribute) in einen Filestream schreiben und ihn lesen.
Den Filestream kann man sich als eine Art Speicherliste vorstellen, in die die Attributwerte der persistenten (d.h. dauerhaften) Objekte Zeichen für Zeichen hinein geschrieben werden oder herausgelesen werden. Der Filestream weiß, wie er seinen Inhalt auf die Festplatte bringt.

Dabei wird unabhängig von der Struktur des Objektes jedes Zeichen einfach nacheinander auf die Festplatte geschrieben oder gelesen.

W r a n g e l s t r 9 6 1 0 9 9 7 B e r l i n . .


Um alle Patientendaten zu speichern, wird die Liste vom 1. bis zum letzten Element abgeklappert und jedes Element (Objekt) schreibt seine Daten in den Filestream. 
Laden (Lesen) funktioniert genauso, nur anders herum.



Dazu sind folgende Schritte in dieser Reihenfolge erforderlich:

In TPATIENT

  1. Ergänzen Sie TPatient um den Import
    uses Classes   // import: TFilestream
    und
  2. die zwei neuen Methoden

    procedure InDateiSchreiben (var Fs : TFilestream); override;
    procedure AusDateiLesen (var Fs : TFilestream);    override;

    Bei der Implementation müssen Sie die entsprechenden Methoden aus TPerson und TAdresse aufrufen:

     

    procedure TPatient.InDateiSchreiben (var Fs : TFilestream);
    (* -------------------------------------------------------------------- *)
    begin
      inherited InDateiSchreiben(Fs);
      Adresse.InDateiSchreiben(Fs);
      Fs.Write( Krankenkasse, SizeOf(Krankenkasse));
      Fs.Write( Blutgruppe, SizeOf(Blutgruppe));
    end;


    Übernehmen Sie diese Implementation und beachten Sie, dass  bei geerbten oder aggregierten Klassen einen entsprechenden Methodenaufruf mit inherited oder als qualifizierten Bezeichner in der 1. Zeile zu implementiert wird.

    Die Methode
    TPatient.AusDateiLesen wird genauso implementiert, jedoch heißt die Leseanweisung Fs.Read.

    Die  Klassen TPerson und TAdresse verfügen bereits über diese Methoden, die genauso implementiert sind.

In TLISTE

  1. Aktivieren Sie in uSliste die Load- und Store-Methoden.

In TFENSTERFRM

Implementieren Sie in uFensterFrm die Methoden Patientenliste.Load(..)und Patientenliste.Store(..)

Da in der Anforderungsdefinition gesagt haben, dass Laden und Speichern automatisch laufen soll, gehört Load in die Methode FormCreate und Store in EndeBtnClick.

Hinweis:
Kopieren Sie den Quelltext direkt aus diesem Dokument und fügen Sie ihn in der Klasse ein!



©    05. Oktober 2008    Siegfried Spolwig

page_top