Xử lý tệp văn bản

Sử dụng ngôn ngữ lập trình pascal viết chương trình xử lý tệp văn bản với các yêu cầu sau:
* Đọc tệp văn bản và in ra màn hình.
* Sữa Tệp văn bản theo quy tắc
* Bỏ các dấu cách không cần thiết
* Trước các dấu . , : ; ! ? không có dấu cách
* Sau các dấu . , : ; ! ? phải có 1 dấu cách
* Đầu mổi câu (sau dấu . ! ) phải viết hoa
* Chương trình có dao diện đẹp và dể sử dụng.

type Set1 = set of char;

procedure ChuanHoa(var s:string);
begin
    while s[1]=' ' do delete(s,1,1);
    while s[length(s)]=' ' do delete(s,length(s),1);
    while pos('  ',s)<>0 do delete(s,pos('  ',s),1);
end;

procedure ChuanHoaLan2(var s:string);
var sSplit,sEnd:Set1;
    i:integer;
begin
     sSplit:=[',', '.', ':', ';', '!', '?'];
     sEnd:=['.', '!', '?'];

     s[1]:=upcase(s[1]);
     for i:=2 to length(s)-1 do
     begin
          if s[i] in sSplit then
          begin
             if s[i-1]=' ' then
             begin
                  delete(s,i-1,1);
                  dec(i);
             end;
             if s[i+1]<>' ' then
                insert(' ',s,i+1);
          end;
          if s[i] in sEnd then
             s[i+2]:=upcase(s[i+2]);
     end;
end;


VAR str:string;
    f,g:text;
BEGIN
     assign(f,'C:\input.txt');{Doc file}
     reset(f);
     while not eof(f) do
           read(f,str);
     close(f);
     ChuanHoa(str);
     ChuanHoaLan2(str);
     writeln(str);
     assign(g,'C:\input.txt');{Sua lai file}
     rewrite(g);
     write(g,str);
     close(g);
     readln;
END.

Không có nhận xét nào:

Đăng nhận xét