home *** CD-ROM | disk | FTP | other *** search
/ ProfitPress Mega CDROM2 …eeware (MSDOS)(1992)(Eng) / ProfitPress-MegaCDROM2.B6I / MAGAZINE / MISC / ITPOCT90.ZIP / FCUNIT.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1990-10-01  |  1.1 KB  |  58 lines

  1. UNIT FCUnit;
  2.  
  3. INTERFACE
  4.  
  5. USES Crt;
  6.  
  7. TYPE
  8.   Action  = (Input, Output);
  9.   DataBlk = ARRAY[1..512] OF Byte;
  10.   FileObj = OBJECT
  11.     Fp : FILE;
  12.     CONSTRUCTOR OpenFile(FileName: String; FileAction: Action);
  13.     PROCEDURE ReadBlock(VAR Fb: DataBlk; VAR Size: Integer);
  14.     PROCEDURE WriteBlock(Fb: DataBlk;    Size: Integer);
  15.     DESTRUCTOR CloseFile;
  16.   END;
  17.  
  18. IMPLEMENTATION
  19.  
  20. CONSTRUCTOR FileObj.OpenFile;
  21. BEGIN
  22.   Assign(Fp, FileName);
  23.   CASE FileAction OF
  24.     Input: BEGIN
  25.       {$I-}Reset(Fp, 1);{$I+}
  26.       IF IOResult <> 0 THEN BEGIN
  27.         WriteLn(FileName, ' not found!');
  28.          Halt(1);
  29.          END;
  30.       WriteLn(FileName,' opened for read ... ');
  31.       END;
  32.     Output: BEGIN
  33.       Rewrite(Fp, 1);
  34.       WriteLn(FileName,' opened for write ... ');
  35.       END;
  36.     END; {CASE}
  37. END;
  38.  
  39. DESTRUCTOR FileObj.CloseFile;
  40. BEGIN
  41.    Close(Fp);
  42.    WriteLn('File closed ...');
  43. END;
  44.  
  45. PROCEDURE FileObj.ReadBlock;
  46. BEGIN
  47.    BlockRead(Fp, Fb, SizeOf(Fb), Size);
  48.    WriteLn('Reading ', Size, ' bytes ... ');
  49. END;
  50.  
  51. PROCEDURE FileObj.WriteBlock;
  52. BEGIN
  53.    BlockWrite(Fp, Fb, Size);
  54.    WriteLn('Writing ', Size, ' bytes ... ');
  55. END;
  56.  
  57. END.
  58.