home *** CD-ROM | disk | FTP | other *** search
/ Global Amiga Experience / globalamigaexperience.iso / compressed / development / clusterdemo.dms / clusterdemo.adf / Modules.lha / modules / txt / FileSystem.def < prev    next >
Text File  |  1994-05-25  |  6KB  |  226 lines

  1. |##########|
  2. |#MAGIC   #|CLABLLAF
  3. |#PROJECT #|"ImportAll"
  4. |#PATHS   #|"StdProject"
  5. |#FLAGS   #|xx-x-x--x---xxx-----------------
  6. |#USERSW  #|--------------------------------
  7. |#USERMASK#|--------------------------------
  8. |#SWITCHES#|xx---xxxxx------
  9. |##########|
  10. DEFINITION MODULE FileSystem;
  11.  
  12. FROM System     IMPORT Regs;
  13. FROM Resources  IMPORT NotEnoughMemory,ContextPtr;
  14. FROM T_Dos      IMPORT DosExceptionGrp;
  15.  
  16.  
  17. EXCEPTION
  18.   BadFile             : "Bad filehandle";
  19.   NoInFile            : "InFile not opened";
  20.   NoOutFile           : "OutFile not opened";
  21.   OutFileOpenedTwice  : "OutFile allready open";
  22.   InFileOpenedTwice   : "InFile allready open";
  23.  
  24. GROUP
  25.   FsExceptionGrp  = NoInFile,NoOutFile,NotEnoughMemory,T_Dos.DosExceptionGrp;
  26.  
  27. TYPE
  28.   File          = HIDDEN;
  29.  
  30.  
  31. (*============== Global File =================================================*)
  32.  
  33. |
  34. |  Funktion  : Öffnet eine Datei
  35. |  Parameter : f       <-> Pointer der die Datei spezifiziert
  36. |              name    <-  Name der Datei
  37. |              new     <-  Flag, ob eine neue oder eine bestehende Datei
  38. |                          geöffnet werden soll
  39. |              size    <-  Größe des Puffers für dei Datei in Bytes
  40. |              context <-  Context, zu dem das File geöffnet werden soll,
  41. |                          ist dieser NIL, wird der ActContext verwendet.
  42. |
  43.  
  44. PROCEDURE Open(VAR f        : File;
  45.                REF name     : STRING;
  46.                    new      : BOOLEAN := FALSE;
  47.                    size     : LONGINT := $1000;
  48.                    context  : ContextPtr := NIL);
  49.  
  50. |
  51. |  Funktion  : Schließt eine Datei
  52. |  Parameter : f       <- Zeiger der Datei, dei geschlossen werden soll
  53. |  Bemerkung : Am Programmende sollten alle Files wieder geschlossen werden
  54. |
  55.  
  56. PROCEDURE Close(VAR f : File);
  57.  
  58.  
  59. |
  60. |  Funktion  : Liefert die aktuelle Länge eines Files
  61. |  Parameter : f       <- File dessen Länge ermittelt werden soll
  62. |                      -> Länge des Files in Bytes
  63. |
  64.  
  65. PROCEDURE Length(f : File):LONGINT;
  66.  
  67.  
  68. (*============== Input =======================================================*)
  69.  
  70. |
  71. |  Funktion  : Ließt ein Zeichen
  72. |  Parameter : f       <- File  von dem gelesen werden soll
  73. |              c       -> Gelesenes Zeichen.
  74. |
  75.  
  76. PROCEDURE Read(f : File;VAR c : CHAR);
  77.  
  78.  
  79. |
  80. |  Funktion  : Ließt einen beliebigen Typen fester Länge
  81. |  Parameter : f       <- File  von dem gelesen werden soll
  82. |              block   -> gelesene Variable.
  83. |
  84.  
  85. PROCEDURE ReadBlock(f : File;VAR block : ANYTYPE);
  86.  
  87.  
  88. |
  89. |  Funktion  : Ließt eine Anzahl Bytes und schreibt sie in den Speicher
  90. |  Parameter : f   <- File  von dem gelesen werden soll
  91. |              pos -> Stellen ab der die Daten in den Speicher geschrieben
  92. |                     werden sollen.
  93. |              len -> Anzahl der Zeichen, die gelesen werden sollen.
  94. |
  95.  
  96. PROCEDURE ReadBytes(f : File;pos : ANYPTR;len : LONGINT);
  97.  
  98.  
  99. (*============== Output ======================================================*)
  100.  
  101. |
  102. |  Funktion  : Schreibt ein Zeichen
  103. |  Parameter : f       <- File  in das geschrieben werden soll
  104. |              c       -> zu schreibendes Zeichen.
  105. |
  106.  
  107. PROCEDURE Write(f : File;c : CHAR);
  108.  
  109.  
  110. |
  111. |  Funktion  : Schreibt einen beliebigen Typen fester Länge
  112. |  Parameter : f       <- File  in das geschrieben werden soll.
  113. |              block   -> zu schreibenden Variable.
  114. |
  115.  
  116. PROCEDURE WriteBlock(f : File;REF block : ANYTYPE);
  117.  
  118.  
  119. |
  120. |  Funktion  : Schreibt eine Anzahl Bytes aus dem Speicher auf Disk.
  121. |  Parameter : f   <- File  in das geschrieben werden soll.
  122. |              pos -> Speicherstellen von der ab die Daten geschrieben
  123. |                     werden sollen.
  124. |              len -> Anzahl der Zeichen, die gschrieben sollen.
  125. |
  126.  
  127. PROCEDURE WriteBytes(f : File;pos : ANYPTR;len : LONGINT);
  128.  
  129.  
  130. |
  131.  
  132. |
  133. |  Funktion  : Gibt die Position des internen Schreib/Lesezeiger relativ zum
  134. |              Dateianfang aus.
  135. |  Parameter : f       <- File von dem man die Information haben will.
  136. |                      -> Position in Bytes.
  137. |
  138.  
  139. PROCEDURE Pos(f : File):LONGINT;
  140.  
  141.  
  142. |
  143. |  Funktion  : Setz den internen Schreib/Lesezeiger auf die angegebene
  144. |              Position relativ zum Dateianfang.
  145. |  Parameter : f       <- File dessen Zeiger versetzt werden soll.
  146. |              pos     -> neue Position in Bytes.
  147. |
  148.  
  149. PROCEDURE SetPos(f : File;pos : LONGINT);
  150.  
  151.  
  152. |
  153. |  Funktion  : Liefert TRUE zurück, wenn versucht wurde über das Dateiende
  154. |              hinaus zu lesen.
  155. |  Parameter : f       <- File das geprüft werden soll
  156. |                      -> TRUE wenn Dateiende erreicht wurde.
  157. |
  158.  
  159. PROCEDURE Eof(f : File):BOOLEAN;
  160.  
  161.  
  162. GROUP
  163.   FileIOGrp  = Open,File,Close,Length,Read,ReadBlock,
  164.                ReadBytes,Write,WriteBlock,WriteBytes,Pos,SetPos,Eof;
  165.  
  166. (*============== Quickfiles ==================================================*)
  167.  
  168. |
  169. |  Die folgenden Quickfile Funktionen entsprechen in ihrer Funktion den oben
  170. |  aufgeführten näheres finden Sie in ihrem Handbuch.
  171. |
  172.  
  173. PROCEDURE Q_OpenInFile(REF name     : STRING;
  174.                            buffSize : LONGINT;
  175.                            context  : ContextPtr:=NIL);
  176.  
  177. PROCEDURE Q_OpenOutFile(REF name     : STRING;
  178.                             buffSize : LONGINT;
  179.                             context  : ContextPtr:=NIL);
  180.  
  181. PROCEDURE Q_CloseInFile;
  182.  
  183. PROCEDURE Q_CloseOutFile;
  184.  
  185.  
  186. |
  187. |  Funktion  : Prüft ob das nächste Zeichen gleich dem angegebenen ist.
  188. |  Parameter : c       <- Zeichen auf das getestet werden soll.
  189. |                      -> TRUE wenn das nächste Zeichen mit c übereinstimmt
  190. |
  191.  
  192. PROCEDURE Q_Test(c : CHAR):BOOLEAN;
  193.  
  194. PROCEDURE Q_Read(VAR c IN A0 : CHAR);
  195.  
  196. PROCEDURE Q_ReadBlock(VAR block : ANYTYPE);
  197.  
  198. PROCEDURE Q_ReadBytes(pos : ANYPTR;len : LONGINT);
  199.  
  200. PROCEDURE Q_Write(c IN D4 : CHAR);
  201.  
  202. PROCEDURE Q_WriteBlock(REF block : ANYTYPE);
  203.  
  204. PROCEDURE Q_WriteBytes(pos : ANYPTR;len : LONGINT);
  205.  
  206.  
  207. PROCEDURE Q_GetInPos():LONGINT;
  208.  
  209. PROCEDURE Q_SetInPos(pos : LONGINT);
  210.  
  211. PROCEDURE Q_GetOutPos():LONGINT;
  212.  
  213. PROCEDURE Q_SetOutPos(pos : LONGINT);
  214.  
  215.  
  216. GROUP
  217.   QuickIOGrp  = Q_OpenInFile,Q_OpenOutFile,Q_CloseInFile,Q_CloseOutFile,Q_Test,
  218.                 Q_Read,Q_ReadBlock,Q_ReadBytes,Q_Write,
  219.                 Q_WriteBlock,Q_WriteBytes,Q_GetInPos,Q_SetInPos,Q_GetOutPos,
  220.                 Q_SetOutPos;
  221.  
  222.   All         = FileIOGrp,QuickIOGrp;
  223.  
  224. END FileSystem.
  225.  
  226.