tcvngotiengviettrongpascal Nhập xuất tiếng Việt trong Pascal với thư viện TCVN

TCVN - gõ tiếng Việt trong Pascal

Bạn đã từng nghe đến gõ tiếng Việt trong chế độ đồ họa của Pascal, hay gõ tiếng Việt trong Pascal với VietRes,… không rắc rối như vậy, tất cả những gì bạn cần là thư viện TCVN cho Pascal và bạn sẽ có được:

  • Hiển thị tiếng Việt mã TCVN3 trong chế độ văn bản của Pascal (Turbo Pascal)
  • Hàm chuyển đổi kí tự dạng Telex (ví dụ: tieesng Vieejt) và VNI (ví dụ: tie61ng Vie65t) thành tiếng Việt mã TCVN3
  • Hàm nhập tiếng Việt (bộ gõ tiếng Việt) kiểu Telex và VNI

Một đoạn code ví dụ:

USES tcvn;
VAR s:STRING;
BEGIN
loadfont;
writeln(telex('Ddaay laf moojt dofng tieesng Vieejt'));
write(telex('Nhaajp tieesng Vieejt kieeru'),' Telex: ');
s:=readt;
writeln(telex('Chuooxi bajn ddax nhaajp laf:'));
writeln(s);

write(telex('Nhaajp tieesng Vieejt kieeru VNI'));
s:=readv;
writeln(telex('Chuooxi bajn ddax nhaajp laf:'));
writeln(s);

readln;
unloadfont;
END.

Và đây là kết quả:

tcvnvidu Nhập xuất tiếng Việt trong Pascal với thư viện TCVN

Trước hết cần khai báo sử dụng thư viện TCVN bằng uses TCVN;

Đầu chương trình cần nạp font tiếng Việt bằng thủ tục loadfont;

Chuyển đổi một chuỗi Telex thành tiếng Việt bằng hàm Telex, chuyển đổi một chuỗi VNI thành tiếng Việt bằng hàm VNI

Nhập vào một chuỗi tiếng Việt bằng kiểu gõ Telex dùng hàm readT, kiểu gõ VNI dùng hàm ReadV (chỉ cho phép gõ dấu ngay sau nguyên âm chứ không cho phép gõ dấu tự do như Unikey)

Trước khi kết thúc chương trình cần gỡ bỏ font tiếng Việt và nạp lại font hệ thống bằng hàm unloadfont;

Tải về: Turbo Pascal tích hợp thư viện TCVN
(Tải về, cài đặt và sử dụng. Xem thêm hướng dẫn sử dụng tại Start -> All Program -> Turbo Pascal ->TCVN)

  19 Responses to “Nhập xuất tiếng Việt trong Pascal với thư viện TCVN”

  1. Không hiểu sao trong TP mình ko dịch dang file exe dc trong khi BP vẫn làm dc.
    Nghe nói trong pascal có lập trình đa luồng, nếu có thì nhờ bạn nói rõ hơn vì mình đã tìm nhưng ko thấy tài liệu nào nói về lập trình đa luồng trong pascal.

    Thanks.

    • Turbo Pascal hay Borland Pascal thì chế độ compile cũng như nhau cả, bạn xem lại cài đặt: Compile, Nếu Destination Disk thì kết quả dịch ghi ra file còn là Memory thì kết quả chỉ lưu trong bộ nhớ (RAM). Click chuột vào dòng này để thay đổi chế độ.
      Turbo/Borland Pascal chạy trên nên DOS, đơn nhiệm chỉ có một luồng duy nhất. Đa luồng chỉ có trong Free Pascal với phương pháp lập trình hướng đối tượng. Bạn tham khảo tại đây.

  2. Trong ct của mình  có sử dụng tiếng Việt khi mình dịch sang exe rồi mang sang máy khác thì có hiển thị dc TV ko bạn? Nếu không thì hướng dẫn giúp mình cách khắc phục.

    Thanks.

  3. mình đã thử nhưng vẫn ko viết được tiếng việt bạn ạ, các kí tự in ra mà hình vẫn là các kí tự trong bảng mã ascii

    code mình viết như sau

    uses tcvn;

    begin

    writeln(telex(‘chafo thees giows’));

    end.

    • Bạn cần thêm lệnh loadfont sau begin và unloadfont trước end.
      Lưu ý là chỉ hiển thị được tiếng Việt ở chế độ Full Screen, hàm loadfont sẽ tự động kích hoạt chế độ Full Screen. Windows 7 không cho phép chạy ứng dụng DOS ở chế độ Full Screen nên sẽ bị lỗi. Thay vào đó bạn có thể sử dụng Turbo Pascal with DOSBox tại đây

  4. Cho mình hỏi là làm sao có thể mở và đọc được file *.tpu?

    • File tpu (Turbo Pascal Unit) là file thư viện đã biên dịch (compile) bạn không thể mở và đọc được, bạn có thể sử dụng nếu biết các hàm/thủ tục chứa trong đó, bằng cách đặt file đó vào thư mục TPU của Turbo Pascal hoặc đặt cùng thư mục với tập tin mã nguồn.

  5. Bạn ơi, mình khai báo thư viện tcvn, sau đó compile thì nó báo lỗi ko tìm thấy file tcvn.tpu ? chỉ cho mình cách fix với, cảm ơn nhiều :)

  6. Hàm FSearch được khai báo như sau:
    function FSearch(Path: PathStr; DirList: string): PathStr;
    Tìm kiếm file Path trong danh sách các thư mục DirList. Path, DirList và hàm FSearch đều có kiểu PathStr, danh sách các thư mục trong DirList được cách nhau bởi dấu chấm phẩy. Hàm FSearch chỉ tìm kiếm chính xác theo tên Path và không tìm kiếm trong thư mục con.

    Chương trình liệt kê tất cả các thư mục và tập tin trong máy tính bằng ngôn ngữ Pascal. Chương trình sử dụng hai hàm FindFirst và FindNext trong thư viện Dos. Lưu ý: chỉ chạy tốt với Free Pascal, trên Turbo Pascal chương trình bị lỗi khi gặp đường dẫn thư mục quá dài.

    USES Dos, crt;

    TYPE pNode = ^Node;
         Node = RECORD
         s: STRING;
         pNext: pNode;
         END;

    VAR pHead: pNode; {Con tro den dau stack}
        found: SearchRec;
        drive: CHAR;
        findPath: STRING;
        count: LONGINT;
        fo: TEXT;
    PROCEDURE InitStack;
    BEGIN
        pHead:=NIL;
    END;

    FUNCTION isStackEmpty: BOOLEAN;
    BEGIN
         isStackEmpty:= (pHead = NIL);
    END;                                                                                                              

    PROCEDURE Pop(VAR s:STRING);
    VAR tmp: pNode;
    BEGIN
         s:=pHead^.s;
         tmp:=pHead;
         pHead:=pHead^.pNext;
         dispose(tmp);
    END;

    PROCEDURE Push(s:STRING);
    VAR tmp:pNode;
    BEGIN
         new(tmp);
         tmp^.s:=s;
         tmp^.pNext:=pHead;
         pHead:=tmp;
    END;

    BEGIN
     assign(fo,'AllFiles.txt'); rewrite(fo);

     InitStack;
     count:=0;

     {Them tat ca cac o dia tu A den Z vao stack}
     FOR drive:='z' DOWNTO 'a' DO Push(drive + ':');

     writeln('Ready to listing, while listing you can press any key to stop');
     writeln('Press Enter...');
     readln;

     WHILE NOT isStackEmpty DO
     BEGIN
          pop(findPath);

          FindFirst(findPath + '\*.*', AnyFile, found);
          IF DosError <> 0 THEN continue;
          inc(count);
          writeln(count);
          IF KeyPressed THEN break;

          writeln(fo, findPath);
          WHILE DosError = 0 DO
          BEGIN
              IF found.Attr AND Directory <> 0 THEN
              BEGIN
                 IF (found.Name<>'.') AND (found.Name<>'..') THEN
                     Push(findPath + '\' + found.Name)
              END
              ELSE
              BEGIN
                  inc(count);
                  Writeln(fo, findpath + '\' + found.Name);
              END;
              FindNext(found);
          END;
       END;
       writeln(fo, 'There are ',count, ' files and folders in this computer!');
       close(fo);
       writeln('Done!');
       writeln('There are ',count, ' files and folders in this computer!');
       readln;
    END.

  7. Bạn ơi, sao mình không make ra được thành file *.exe

    • Bạn vào menu Compile, nếu DestinationMemory thì bạn click chuột vào để chuyển sang Disk. Sau đó nhấn F9 hoặc Compile -> Build, quá trình dịch thành công sẽ tạo ra file exe cùng thư mục.

      • Cảm ơn bạn, mình build đc rồi. Bạn hướng dẫn mình viết tiếng việt trong chế độ đồ họa đc không? Mình dùng lệnh outtextxy với telex(”) thì không được. Các đường dẫn mình đều đã check. Đồ họa thì lên nhưng chữ bị lỗi font bạn ạ.

      • Thư viện TCVN không dùng trong chế độ đồ họa của Turbo Pascal được.

  8. chỗ dòng nhập “Tôi đang gõ kiểu VNI” sao dùng hàm Telex

    • Bạn vui lòng đọc lại hướng dẫn sử dụng các hàm Telex, Vni, ReadT và ReadV. Nếu cần thiết bạn nên đọc tài liệu lập trình Pascal căn bản trước.
      Cảm ơn câu hỏi của bạn!

  9. File Zip tải về bị lỗi!

 Leave a Reply

(bắt buộc)

(bắt buộc)


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Comment moderation is enabled. Your comment may take some time to appear.

   

Lịch sử đăng bài

Tháng Ba 2012
T2 T3 T4 T5 T6 T7 CN
« Tháng 1    
 1234
567891011
12131415161718
19202122232425
262728293031  

Thông tin trang

© 2011 KĨ THUẬT LẬP TRÌNH Suffusion theme by Sayontan Sinha