PAGE.PAS 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. program page;
  2. (* Program to test translation of file types *)
  3. const Page_header = ' Page ';
  4. var Filename : STRING[14];
  5. SourceFile : TEXT;
  6. Line : STRING[255];
  7. Page_length, Count, Page_num,
  8. I : INTEGER;
  9. begin
  10. write('Enter filename to print ');
  11. readln(Filename); writeln;
  12. Assign(SourceFile,Filename);
  13. (*$I-*) Reset(SourceFile); (*$I+*)
  14. if IOresult = 0
  15. then begin
  16. repeat
  17. write('Enter page length ');
  18. readln(Page_Length); writeln;
  19. until Page_Length > 0;
  20. Count := 0;
  21. Page_Num := 1;
  22. while not EOF(SourceFile) do begin
  23. readln(SourceFIle,Line);
  24. Count := Count + 1 + Length(Line) DIV 80;
  25. if Count >= Page_Length then begin
  26. writeln(LST); writeln(LST);
  27. writeln(LST,Page_Header,Page_Num);
  28. writeln(LST,^L);
  29. Page_Num := Page_Num + 1;
  30. Count := 0; (* Reset counter *)
  31. end;
  32. writeln(LST,Line);
  33. end;
  34. (* Print last page number *)
  35. for I := Count+1 to Page_Length do
  36. writeln(LST);
  37. writeln(LST,Page_Header,Page_Num);
  38. writeln(LST,^L);
  39. Close(SourceFile)
  40. end
  41. else writeln('Sorry I cannot find file ',Filename);
  42. end.
  43.