home *** CD-ROM | disk | FTP | other *** search
- (******************************************************
- ** PROGRAM TITLE: FILE_CLOSE_DEMONSTRATION
- **
- ** WRITTEN BY: Raymond E. Penley
- ** DATE WRITTEN: 22 JAN 1980
- ** Modified for Pascal/Z vers 3.0
- ** 25 June 1980
- **
- ** SUMMARY:
- ** Demonstrate the three methods of closing files
- ** with Pascal.
- **
- ** 1. Using a file variable in a block.
- ** 2. Reusing a file variable with another file
- ** identifier (file name) to close the currently
- ** open file before opening the new file.
- ** 3. Normal program termination will close ALL
- ** open files. (This is NOT the preferred method)
- **
- *******************************************************)
- PROGRAM FCLOSE;
- var
- IX : INTEGER;
- wrk1 : TEXT; { Global file descriptor <FCB> }
-
- Procedure PAUSE;
- var du: char;
- begin
- write('Press return to continue');
- readln(du);
- end;
-
- Procedure CLEAR;
- var ix: 1..25;
- begin
- for ix:=1 to 25 do writeln;
- end;
-
- PROCEDURE A;
- VAR F1 : TEXT;
- BEGIN
- CLEAR;
- writeln('FILE CLOSE METHOD #1');
- writeln;
- writeln('USING A FILE VARIABLE LOCAL TO A "BLOCK"');
- writeln('WILL CLOSE THE FILE(S) UPON EXIT OF THE BLOCK');
- writeln('This is the preferred method!');
- writeln;
- writeln(' PROCEDURE A;');
- writeln(' VAR F1 : TEXT;');
- writeln(' BEGIN');
- writeln(' REWRITE(''CTESTA.$$$'',F1);');
- writeln(' ... BODY OF PROCEDURE ...');
- writeln(' END; { CLOSE(F1) }');
- writeln;
- writeln('UPON EXITING THIS PROCEDURE WE WILL CLOSE');
- writeln('THE FILE ''CTESTA.$$$'' AND FIX IT ON THE DIRECTORY');
- REWRITE('CTESTA.$$$', F1);
- writeln(F1, 'PROCEDURE A');
- writeln;
- PAUSE;
- END; { CLOSE(F1) }
-
- Procedure B;
- begin
- CLEAR;
- REWRITE('CTESTQQ.$$$',WRK1);
- writeln(WRK1,'CTESTQQ.$$$ THIS IS CURRENTLY OPEN FILE');
- writeln('FILE CLOSE METHOD #2');
- writeln;
- writeln('Reusing the same file variable with a new file');
- writeln('identifier <file name> will close the currently');
- writeln('open file before opening the new file');
- writeln;
- writeln(' begin');
- writeln(' REWRITE(''CTESTQQ.$$$'',WRK1);');
- writeln(' writeln(WRK1,''THIS IS THE CURRENTLY OPEN FILE'');');
- writeln(' writeln(''NOW TO CLOSE CTESTQQ.$$$ AND OPEN'');');
- writeln(' writeln(''CTESTZZ.$$$'');');
- writeln(' REWRITE(''CTESTZZ.$$$'',WRK1);');
- writeln(' writeln(''CTESTZZ.$$$ IS NOW THE CURRENT FILE'');');
- writeln(' end;');
- writeln;
- REWRITE('CTESTZZ.$$$',WRK1);
- writeln(WRK1,'CTESTZZ.$$$ IS NOW THE CURRENT FILE');
- writeln;
- PAUSE;
- end;
-
-
- BEGIN
- CLEAR;
- writeln('FILE CLOSE DEMONSTRATION FOR PASCAL/Z');
- writeln('by Raymond E. Penley');
- FOR IX:=1 TO 12 DO writeln;
- FOR IX:=1 TO 5000 DO {DUMMY} ;
- A; {--- Method #1 ---}
- B; {--- Method #2 ---}
- {--- Method #3 ---}
- CLEAR;
- writeln('FILE CLOSE METHOD #3');
- writeln;
- writeln('This is really the simplist method. Any files still');
- writeln('open at program termination will be closed. This is');
- writeln('the most dangerous method in that a power failure or a');
- writeln('disk failure while the program is running will leave');
- writeln('your file nowhere.');
- writeln('The file "CTESTZZ.$$$" is still open at this time.');
- writeln('When this program terminates it will be fixed on the');
- writeln('directory.');
- writeln;
- PAUSE;
- writeln;writeln;writeln;writeln;
- End{of file close demo}{ CLOSE(wrk1) }.
-