home *** CD-ROM | disk | FTP | other *** search
- program turblist;
-
- {
-
- TURBLIST.PAS -
-
- TLIST.COM as supplied with TURBO Pascal seems to loose
- track of the page start and stop points. This program
- will list and insert include files. The include state-
- ment must start on column 1. It will not underline or
- mark reserved words.
-
-
- Dave McCourt - Williamsport Pa.
-
- }
-
- type
- AnyString=string[255];
-
- var
- f,f1,f2 : Text;
- Line : string[255];
- i,j,k,page,LineNum : integer;
- FileName : string[14];
- IncFileName : string[14];
- ch : char;
-
- function Exist(FileN: Anystring): boolean;
- var F: file;
- begin
- {$I-}
- assign(F,FileN);
- reset(F);
- {$I+}
- if IOResult <> 0 then Exist:=false
- else Exist:=true;
- end;
-
- procedure GetFileName;
- begin
- Filename:='';
- repeat
- read(kbd,ch);
- if Upcase(ch) in ['A'..'Z','0'..'9','.',^M] then
- begin
- write(Upcase(ch));
- Filename:=Filename+upcase(ch);
- end;
- UNTIL(Ch=^M) or (length(Filename)=12);
- if Ch=^M then Delete(Filename,Length(Filename),1);
- end;
-
- Procedure NewPage;
- begin
- if page > 0 then writeln(lst,chr(12));
- page:=page+1;
- writeln(Lst);
- writeln(lst,'Program listing for: ',Filename);
- writeln(lst,'Page ',page);
- writeln(lst);
- LineNum:=4;
- end;
-
- Procedure IncFile;
- begin
- k:=5;
- IncFileName :='';
- repeat
- IncFileName:=IncFileName + UpCase(copy(line,k,1));
- k:=k+1;
- until Upcase(copy(line,k,1)) = '}';
- Assign(f1,IncFileName);
- writeln(IncFileName:14);
- ReSet(f1);
- While not Eof(f1) do
- begin
- LineNum:=LineNum+1;
- if LineNum > 60 then NewPage;
- readln(f1,Line);
- writeln(lst,Line);
- end;
- close(f1);
- end;
-
- begin
- ClrScr;
- write('Enter file to print: ');
- GetFileName;
- Assign(f,FileName);
- ReSet(f);
- page:=0;
- ClrScr;
- NewPage;
- While not Eof(f) do
- begin
- LineNum:=LineNum+1;
- if LineNum > 60 then NewPage;
- readln(f,Line);
- writeln(lst,line);
- if copy(line,1,4) = '{$I ' then incfile;
- end;
- close(f);
- writeln(lst,chr(12));
- end.