| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- IMPLEMENTATION MODULE FileIO ;
- FROM SYSTEM IMPORT ADR ;
- FROM StreamFile IMPORT Open, Close ;
- FROM IOChan IMPORT ChanId, RawRead, RawWrite ;
- FROM ChanConsts IMPORT FlagSet, OpenResults, readFlag, writeFlag,
- oldFlag, rawFlag, opened ;
- VAR
- fs : FlagSet ;
- cid : ChanId ;
- res : OpenResults ;
- PROCEDURE ReadFile (name: ARRAY OF CHAR; VAR data: ARRAY OF CHAR;
- VAR got: CARDINAL) : BOOLEAN ;
- BEGIN
- fs := FlagSet {readFlag, oldFlag, rawFlag} ;
- Open (cid, name, fs, res) ;
- IF res # opened THEN
- RETURN FALSE ;
- END ;
- RawRead (cid, ADR (data), HIGH (data) + 1, got) ;
- Close (cid) ;
- RETURN TRUE ;
- END ReadFile ;
- PROCEDURE WriteFile (name: ARRAY OF CHAR; VAR data: ARRAY OF CHAR;
- n: CARDINAL) : BOOLEAN ;
- BEGIN
- fs := FlagSet {writeFlag, rawFlag} ;
- Open (cid, name, fs, res) ;
- IF res # opened THEN
- RETURN FALSE ;
- END ;
- RawWrite (cid, ADR (data), n) ;
- Close (cid) ;
- RETURN TRUE ;
- END WriteFile ;
- END FileIO.
|