home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / bix / stripcr.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1986-08-04  |  2.3 KB  |  84 lines

  1. Program stripcr;
  2.  
  3. const space: byte = 32;
  4.       cr:    byte = 13;
  5.       lf:    byte = 10;
  6.  
  7. type
  8.   name = string[66];
  9.  
  10. var
  11.   infile, outfile: file of byte;
  12.   infilename, outfilename: name;
  13.   reply: name;
  14.   inbyte: byte;
  15.   lastbyte: byte;
  16.  
  17.    function exist(filename: name): boolean;
  18.      var fil: file;
  19.    begin
  20.      assign(fil,filename);
  21.      {$I-}
  22.      Reset(fil);
  23.      {$I+}
  24.      Exist := (IOresult = 0);
  25.    end; (* exist *)
  26.  
  27.  
  28. begin
  29.  
  30.   If (length(paramstr(1)) > 0)
  31.     then begin
  32.            writeln('>> Strip carriage returns from file: ',paramstr(1));
  33.            infilename := paramstr(1);
  34.            if not exist(infilename) then
  35.              repeat
  36.                write('>> Strip carriage returns from file: ');
  37.                readln(infilename);
  38.                if length(infilename) < 1 then halt;
  39.              until exist(infilename);
  40.          end
  41.      else begin
  42.             repeat
  43.               write('>> Strip carriage returns from file: ');
  44.               readln(infilename);
  45.               if length(infilename) < 1 then halt;
  46.               if not exist(infilename) then writeln('No such file!');
  47.             until exist(infilename);
  48.           end;
  49.  
  50.   If length(paramstr(2)) > 0
  51.     then begin
  52.            writeln('>> Store the resulting text file as: ',paramstr(2));
  53.            outfilename := paramstr(2);
  54.          end
  55.      else begin
  56.               write('>> Store the resulting text file as: ');
  57.               outfilename := copy(infilename,1,length(infilename)-1) + '$';
  58.               writeln(outfilename);
  59.           end;
  60.   Assign(infile, infilename);
  61.   Assign(outfile, outfilename);
  62.   Reset(infile);
  63.   Rewrite(outfile);
  64.   repeat
  65.     read(infile,inbyte);
  66.     if   (inbyte <> cr) and (inbyte <> lf)
  67.          and (not eof(infile))
  68.       then write(outfile, inbyte)
  69.       else begin
  70.              repeat
  71.                read(infile,inbyte);
  72.              until (inbyte <> cr) and (inbyte <> lf) or eof(infile);
  73.              if inbyte = space (* new paragraph *)
  74.                then write(outfile,cr,lf,inbyte) (* new paragraph *)
  75.                else if lastbyte <> space (* no space *)
  76.                  then write(outfile,space,inbyte)
  77.                  else write(outfile,inbyte);
  78.            end;
  79.     lastbyte := inbyte;
  80.   until eof(infile);
  81.   close(outfile);
  82.   close(infile);
  83. end.
  84.