home *** CD-ROM | disk | FTP | other *** search
- PROGRAM FileListDemo; {FILELIST.PAS}
-
- USES Crt, Printer;
-
- TYPE
- Action = (Input, Output);
- TextObj = OBJECT
- fp : text;
- LineCount : integer;
- EndOfFile : boolean;
- CONSTRUCTOR OpenFile(FileName: string;
- FileAction: Action);
- PROCEDURE ReadLine(VAR TextLine: string);
- PROCEDURE WriteLine(TextLine: string);
- PROCEDURE PrintLine(TextLine: string);
- PROCEDURE FillBlanks;
- FUNCTION Done: boolean;
- DESTRUCTOR CloseFile;
- END;
-
- CONSTRUCTOR TextObj.OpenFile;
- BEGIN
- Assign(fp, FileName);
- CASE FileAction of
- Input:
- BEGIN
- LineCount := 1;
- Reset(fp);
- IF IOResult <> 0 THEN
- BEGIN
- writeln(FileName, ' not found!');
- halt(1);
- END;
- writeln(FileName, ' opened for read...');
- END;
- Output:
- BEGIN
- Rewrite(fp);
- WriteLn(FileName, ' opened for write...');
- END;
- END; {CASE}
- END;
-
- DESTRUCTOR TextObj.CloseFile;
- BEGIN
- Close(fp);
- WriteLn('File closed...');
- END;
-
- PROCEDURE TextObj.ReadLine;
- BEGIN
- ReadLn(fp, TextLine);
- EndOfFile := Eof(fp);
- END;
-
- PROCEDURE TextObj.WriteLine;
- BEGIN
- WriteLn(fp, TextLine);
- END;
-
- PROCEDURE TextObj.PrintLine;
- BEGIN
- IF not EndOfFile THEN
- BEGIN
- IF TextLine[1] <> '}' THEN
- BEGIN
- WriteLn(lst, TextLine);
- Inc(LineCount);
- END ELSE FillBlanks;
- END;
- END;
-
- PROCEDURE TextObj.FillBlanks;
- VAR
- i : integer;
- BEGIN
- FOR i := LineCount TO 6 DO WriteLn(lst);
- LineCount := 1;
- END;
-
- FUNCTION TextObj.Done;
- BEGIN
- Done := EndOfFile;
- END;
-
- VAR
- InFile: TextObj;
- TextLine: string;
-
- BEGIN
- ClrScr;
- WITH InFile DO
- BEGIN
- OpenFile('DUMMY.DAT', Input);
- REPEAT
- ReadLine(TextLine);
- PrintLine(TextLine);
- UNTIL Done;
- CloseFile;
- END;
- Write('Press Enter to quit...'); ReadLn;
- END.