home *** CD-ROM | disk | FTP | other *** search
/ norge.freeshell.org (192.94.73.8) / 192.94.73.8.tar / 192.94.73.8 / pub / computers / cpm / alphatronic / JRTPAS40.ZIP / LOWER.PAS < prev    next >
Pascal/Delphi Source File  |  1999-04-03  |  2KB  |  55 lines

  1. { this program takes an input textual file and converts all
  2.  characters except those inside single quotes to lower case }
  3.  
  4.  
  5. {=================================================================}
  6. PROGRAM lower;
  7. VAR
  8. ch, ch_1a : char;
  9. count : integer;
  10. string_flag : boolean;
  11. infile, outfile :  ARRAY [1..16] OF char;
  12. upper_case : SET OF char;
  13. f1, f2 : FILE OF char;
  14.  
  15.  
  16. BEGIN
  17.  
  18. writeln;
  19. string_flag := false;
  20. ch_1a := chr(1ah);
  21. upper_case := ['A'..'Z'];
  22. WHILE true DO
  23.        BEGIN
  24.        count := 0;
  25.        write('input filename (or ctl-c to end) : ');
  26.        readln(infile);
  27.        write('output filename : ');
  28.        readln(outfile);
  29.        reset(f1, infile, binary, 4096);
  30.        rewrite(f2, outfile, binary, 4096);
  31.        read(f1; ch);
  32.        WHILE NOT (eof(f1)) AND (ch <> ch_1a) DO
  33.               BEGIN
  34.               IF ch = '''' THEN
  35.                      IF string_flag THEN
  36.                             string_flag := false
  37.                      ELSE
  38.                             string_flag := true;
  39.               IF NOT string_flag THEN
  40.                      IF ch IN upper_case THEN
  41.                             ch := chr(ord(ch) + 20h);
  42.               write(f2; ch);
  43.               write(ch);
  44.               count := count + 1;
  45.               read(f1; ch);
  46.               END;
  47.        writeln;
  48.        writeln('byte count =', count);
  49.        writeln;
  50.        writeln;
  51.        close(f1);
  52.        close(f2);
  53.        END;
  54. END.
  55.