Thứ Bảy, 12 tháng 5, 2012

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

Bài đăng phổ biến