UNIT FSTREAM ;

(* -------------------------------------------------------------------- *)
(*                                                                      *)
(* K L A S S E : FSTREAM                                                *)
(* -------------------------------------------------------------------- *)
(* Version    : 1.1                                                     *)
(*                                                                      *)
(* Autor      : (c) S. Spolwig  - OSZ Handel -                          *)
(*              Wrangelstr. 98                                          *)
(*              10997 Berlin                                            *)
(*                                                                      *)
(* Dateiname  : fstream.pas                                             *)
(*                                                                      *)
(* Aufgabe    : Das Objekt stellt den den allgemeinen Typ CFStream zur  *)
(*              Verfuegung zum Laden und Speichern beliebiger untypi-   *)
(*              sierter Datenobjekte.                                   *)
(*              Die Daten werden als stream gespeichert. Maximal k”nnen *)
(*              mit einem Aufruf 64 kB gelesen oder geschrieben werden. *)
(*                                                                      *)
(*              Vor dem ersten Zugriff MUSS die Prozedur init           *)
(*              aufgerufen werden mit der Uebergabe der Datengroesse:   *)
(*              init(xyzdatei, Filename,sizeof(Datenelementtyp))        *)
(*                                                                      *)
(* Compiler   : Turbo-Pascal 7.0 / MSDOS                                *)
(*                                                                      *)
(* Aenderung  : V. 1.0  20-AUG-97                                       *)
(*                 1.1  05-NOV-97   OpenRead, OpenWrite statt openfile  *)
(* -------------------------------------------------------------------- *)


INTERFACE
(* ========================== Export ================================== *)

type
   CFStream = object
                 f        : File;
                 Datasize : word;
                 Open     : boolean;

                 constructor Init (fname : string; dsize : word) ;
                 procedure OpenRead;             virtual;
                 procedure OpenWrite;            virtual;
                 procedure CloseFile;            virtual;
                 procedure ReadFile  (var data );virtual;
                 procedure WriteFile (var data); virtual;
                 function  EOFile : boolean ;    virtual;
                 function  IsOpen : boolean;     virtual;
                 procedure Load  (var data);     virtual;
                 procedure Store (var data);     virtual;
              end;

(* -------------------- B e s c h r e i b u n g -------------------------

Oberklasse    : -
Bezugsklassen : -
benutze Module: -


Methoden
--------

Init (fname : string; dsize : word) ;

   Auftrag: Die Groesse des zu bearbeitenden Datenobjekts an datei
            uebergeben
   vorher : -
   Aufruf: Init(xyzdatei, dateiname, sizeof(Datenelementtyp))


OpenRead

   Auftrag: Datei zum Lesen oeffnen. Wenn datei nicht
            existierte, Ist eine Datei mit der Laenge 0 angelegt.
   nachher: Datei ist ge”ffnet.


OpenWrite

   Auftrag: Datei zum Schreiben oeffnen. Wenn datei nicht
            existierte, Ist eine Datei mit der Laenge 0 angelegt.
   nachher: Datei ist ge”ffnet.


CloseFile

   vorher : datei ist ge”ffnet.
   nachher: datei ist geschlossen.


ReadFile (var data)

   Auftrag: Einlesen von Daten beliebigen Typs als stream aus externer
   vorher : datei ist mit OpenFile geoeffnet und datei ist > 0
   nachher: Inhalt ist gelesen und an data uebergeben


WriteFile (var data)

   Auftrag: Schreiben von Daten beliebigen Typs in externe Datei als stream.
   vorher : datei ist mit OpenFile geoeffnet
   nachher: data ist die externe Datei geschrieben.


EOFile

   Anfrage: prueft, ob das Ende der Datei erreicht ist.
            Die Funktion entspricht EOf
   nachher: EOFile ist true, wenn die Dateimarke hinter dem letzten Satz
            steht


IsOpen

   Anfrage: prueft, ob datei geoeffnet ist.
   nachher: IsOpen ist true, wenn die Datei geoeffnet ist


Load

   Auftrag: Laden einer Datei mit Daten beliebigen Typs als stream.
   vorher:  Datei ist initialisiert
   nachher: Datei ist gelesen  und an data uebergeben, Datei ist geschlossen


Store

   Auftrag: Speichern von Daten beliebigen Typs in externe Datei als stream.
   vorher : Datei ist initialisiert
   nachher: data ist gespeichert. Datei ist geschlossen
 ---------------------------------------------------------------------- *)

Zurück zur Startseite