home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / lan / g0bsx / round.pas < prev    next >
Pascal/Delphi Source File  |  1989-05-03  |  1KB  |  64 lines

  1. program round ;
  2.  
  3. const linelen = 80;
  4.       cr = #$0D;
  5.       sp = #$20;
  6.       lf = #$0A;
  7.  
  8. type pathname = string[80];
  9.      workstring = string[128] ;
  10.  
  11. var sppos, pos : integer;
  12.     c,lc : char ;
  13.     fi,fo : text ;
  14.     line, tline : workstring ;
  15.  
  16. {$I \pascal\fopen.inc }
  17.  
  18. begin
  19.   if paramcount < 2 then begin
  20.     writeln('*** Round: Not enough parameters');
  21.     halt
  22.   end;
  23.   if not fopen(fi, paramstr(1), 'r') then begin
  24.     writeln('*** Error in opening ', paramstr(1));
  25.     halt
  26.   end;
  27.   if not fopen(fo, paramstr(2), 'w') then begin
  28.     writeln('*** Error in opening ', paramstr(2));
  29.     halt
  30.   end;
  31.   pos := linelen-15;
  32.   line := '';
  33.   tline := '';
  34.   lc := cr;
  35.   while not eof(fi) do begin
  36.     read(fi,c);
  37.     if c <> lf then begin
  38.       if (c = sp) and (lc <> sp) then pos := length(line);
  39.       if (c = cr) then begin
  40.         writeln(fo,line);
  41.         pos := linelen-15;
  42.         line := ''
  43.       end
  44.       else begin
  45.         line := line + c;
  46.         if (length(line) >= linelen) then begin
  47.           if pos < length(line) then begin
  48.             tline := copy( line, pos+1, length(line));
  49.             line := copy (line, 1, pos)
  50.           end else
  51.             tline := '';
  52.           pos := linelen-15;
  53.           writeln(fo,line);
  54.           line := tline;
  55.           while (line[1] = sp) and (length(line)>0) do
  56.             line := copy( line,2,length(line))
  57.         end
  58.       end
  59.     end
  60.   end;
  61.   close(fo);
  62.   close(fi)
  63. end.
  64.