home *** CD-ROM | disk | FTP | other *** search
Modula Definition | 1990-05-15 | 3.2 KB | 128 lines |
- (*********************************************************)
- (* FILESYST.DEF *)
- (* Definition-Modul von FileSystem *)
- DEFINITION MODULE FileSystem;
-
- (*
- Datei-Bibliothek, aehnlich wie sie in
- "Programmieren in Modula-2" von Niklaus Wirth
- beschrieben wurde.
- *)
-
- FROM SYSTEM IMPORT WORD, ADDRESS;
-
- TYPE
-
- Response = ( done, notdone
- (* Kann VIEL mehr sein ! *) );
-
- (* Nicht in allen Systemen *)
- IOMode = ( read, write, io );
- File = RECORD
- id :INTEGER;
- res :Response;
- eof :BOOLEAN;
- mode :IOMode; (* Nicht in allen Systemen *)
- (* Koennen noch interne Variablen kommen *)
- END;
-
- (*
- "File.res" zeigt die mit "done" oder "notdone" Erfolg
- oder Misserfolg nach Dateioperationen an,
-
- "File.eof" zeigt Dateiende an.
- *)
-
-
- PROCEDURE Lookup( VAR f :File;
- filename :ARRAY OF CHAR; new :BOOLEAN );
- (*
- Oeffnet die mit "filename" bezeichnete Datei.
- Falls die Datei nicht existiert, wird sie in
- Abhaengigkeit von der Variablen "new" neu angelegt.
- Es wird versucht die Datei fuer Lesen UND Schreiben
- zu oeffnen, falls das misslingt, wird sie nur fuer
- das Lesen geoeffnet. Ergebniss steht in "f.mode" .
-
- *)
-
- PROCEDURE Create( VAR f :File; mediumname :ARRAY OF CHAR );
- (*
- Neue temporaeres Datei anlegen.
- "mediumname" ist je nach Implementation unbenutzt
- oder wird mit Umgebungsvariablen verglichen, die Pfade
- fuer temporaere Dateien angeben können.
- *)
-
- PROCEDURE Close( VAR f :File );
- (*
- Datei schliessen.
- *)
-
- PROCEDURE Reset( VAR f :File );
- (*
- Dateizeiger auf Dateianfang setzen.
- *)
-
- PROCEDURE Rewrite( VAR f :File );
- (*
- Datei loeschen und Dateizeiger zum
- Schreiben auf Dateianfang setzen.
- *)
-
- PROCEDURE Rename( VAR f :File; filename :ARRAY OF CHAR );
- (*
- Dateinamen aendern.
- *)
-
- PROCEDURE ReadWord( VAR f :File; VAR w :WORD );
- (*
- Ein WORD aus einer Datei lesen.
- *)
-
- PROCEDURE WriteWord( VAR f :File; w :WORD );
- (*
- Ein WORD in die Datei schreiben.
- *)
-
- PROCEDURE ReadChar( VAR f :File; VAR ch :CHAR );
- (*
- Ein Zeichen aus einer Datei lesen.
- Das Zeichen CHAR(13) wird zum EOL konvertiert, das
- folgende CHAR(10) wird ignoriert.
- *)
-
- PROCEDURE WriteChar( VAR f :File; ch :CHAR );
- (*
- Ein Zeichen in die Datei schreiben.
- EOL wird zur Zeichenfolge CHAR(13)-CHAR(10) konvertiert.
- *)
-
- PROCEDURE GetPos( VAR f :File;
- VAR highpos, lowpos :CARDINAL );
- (*
- Position des Datei-Zeigers ermitteln.
- *)
-
- PROCEDURE SetPos( VAR f :File; highpos, lowpos :CARDINAL );
- (*
- Datei-Zeiger zur Position highpos*65536+lowpos bewegen.
- *)
-
-
- PROCEDURE Length( VAR f :File;
- VAR highlen, lowlen :CARDINAL );
- (*
- Groesse der Datei ermitteln.
- *)
-
- (* -------------------------------------------------
- In einigen Implementationen finden sich auch
- Prozeduren, um mit einem Schlag n Bytes zu lesen
- oder zu schreiben.
- ------------------------------------------------- *)
-
- END FileSystem.
- (*********************************************************)
- (* Ende von FILESYST.DEF *)
-