home *** CD-ROM | disk | FTP | other *** search
/ The CIA World Factbook 1992 / k3bimage.iso / sel / 11 / 0005 / tl.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1991-12-02  |  2.0 KB  |  85 lines

  1. const
  2.   lines=150;     {This is number of lines per column.}
  3.   columns=2;     {This is number of 66 character columns.}
  4.                  {150 lines and 2 columns gives maximum density for 8.5x11
  5.                   inch paper, about 20k}
  6.  
  7.   initstring=#27'3'#15#27'S0'#15;   {This is the printer init string.  It
  8.                                      sets Superscript, 15/216 inch line
  9.                                      spacing, and compressed print.  Change
  10.                                      this string for non Epson compatible
  11.                                      printers.}
  12.  
  13. type
  14.   linetype=string[66];
  15.   pagetype=array[1..columns,1..lines] of linetype;
  16.  
  17. var
  18.   page:pagetype;
  19.   infile,outfile:text;
  20.   linesread,a,b,i,j:integer;
  21.   inname:string[20];
  22.  
  23. function rl:linetype;
  24.   var
  25.     s:linetype;
  26.     c:char;
  27.   begin
  28.     s:='';
  29.     repeat
  30.       read(infile,c);
  31.       if (c<>#13) and (c<>#10) then
  32.         s:=s+c;
  33.     until eoln(infile) or (length(s)=64);
  34.     rl:=s;
  35.   end;
  36.  
  37. function pad(s:linetype):linetype;
  38.   var
  39.     s1:linetype;
  40.   begin
  41.     s1:=s;
  42.     while length(s1)<66 do
  43.       s1:=s1+' ';
  44.     pad:=s1;
  45.   end;
  46.  
  47. begin
  48.   write('Enter input filename:  '); readln(inname);
  49.   assign(infile,inname);
  50.   reset(infile);
  51.   writeln(lst,initstring);
  52.   repeat
  53.     j:=0;
  54.     linesread:=0;
  55.     writeln('Reading....');
  56.     repeat
  57.       j:=j+1;
  58.       i:=0;
  59.       repeat
  60.         i:=i+1;
  61.         linesread:=linesread+1;
  62.         page[j,i]:=rl;
  63.       until (i=lines) or (eof(infile));
  64.     until (j=columns) or (eof(infile));
  65.     writeln(linesread);
  66.     b:=0;
  67.     if j=columns then linesread:=linesread-(lines*(j-1));
  68.     if j>1 then i:=lines;
  69.     writeln('Printing....');
  70.     repeat
  71.       b:=b+1;
  72.       a:=0;
  73.       repeat
  74.         a:=a+1;
  75.         write(lst,pad(page[a,b]));
  76.       until (a=j);
  77.       linesread:=linesread-1;
  78.       if linesread=0 then j:=j-1;
  79.       writeln(lst);
  80.     until (b=i);
  81.     writeln(lst,#12#10#10#10);
  82.   until eof(infile);
  83.   close(infile);
  84. end.
  85.