
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ụ:
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ả:

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)





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 là 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.
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.
Được, file exe đã bao gồm các hàm trong các thư viện bạn sử dụng nên bạn có thể chạy được trên các máy khác mà không cần thêm gì cả.
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
loadfontsau begin vàunloadfonttrướ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
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.
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
menu Options – Directories – dòng Unit Directories bạn nhập đường dẫn đến thư mục Unit (thường là C:\TP\UNITS) và đảm bảo trong thư mục này chứa file tcvn.tpu
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.
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.
Bạn ơi, sao mình không make ra được thành file *.exe
Bạn vào menu Compile, nếu Destination là Memory 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.
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!
File Zip tải về bị lỗi!
Cảm ơn bạn đã báo lỗi, mình đã cập nhập lại file mới!