Tải bản đầy đủ (.doc) (4 trang)

Tiếng Việt trong Tubor Pascal

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (79.24 KB, 4 trang )

Hỗ trợ gõ tiếng Việt bằng ngôn ngữ lập trình Pascal
Đỗ Hồng Ngọc
Hiện nay những người học lậptrình trong nhà trường hay đại học thường được bắt đầu
bằng ngôn ngữ TurboPascal. Tuy nhiên, để viết được một chương trình thân thiện với
người dùng (sửdụng giao diện tiếng Việt) thì phần lớn phải sử dụng một trình hỗ trợ
tiếngViệt như VietRes hay Tbk. Cách làm này tuy hiệu quả nhưng không hay vì
chươngtrình luôn phải đi kèm với VRD.EXE hay TBK.COM. Vì vậy, em có viết một unit
hỗtrợ gõ tiếng Việt bằng ngôn ngữ Pascal để giải quyết vấn đề này.
Unit KeyVnTrs có 4 thủ tục chính:
- LoadFontText : Nạp bảng font tiếng Việt
procedure LoadfontText;assembler;
asm
mov ax,seg fon
mov es,ax
mov bp,offset fon
mov ax,1110h
mov bx,1000h
mov cx,0100h
xor dx,dx
int 10h
end;
- CloseFontText : Loại bỏbảng font tiếng Việt
procedure CloseFontText;assembler;
asm
mov ax,1114h
xor bl,bl
int 10h
end;
- InstallTelex : Cài đặt bộ gõ tiếng Việt
procedure InstallTelex;
begin


longint(@int09old):=meml[0:$9 shl 2];
asm cli end;
meml[0:$9 shl2]:=longint(@newint09);
asm sti end;
end;
- RemoveTelex : Loại bỏ bộ gõtiếng Việt
procedure RemoveTelex;
begin
asm cli end;
meml[0:$9 shl2]:=longint(@int09old);
asm sti end;
end;
Để sử dụng, trong chương trình, chỉ cần gọi hai thủ tụcLoadFontText và InstallTelex ở đầu
chương trình, sau đó có thể sử dụng các hàmReadkey, Read, Readln như bình thường. Khi
kết thúc chương trình, phải gọi hai thủtục CloseFontText và RemoveTelex để chương trình
có thể kết thúc bình thường.
Bạn có thể sử dụng Ctrl-Alt để đổi kiểu gõ hay dùng một lệnh gán:
chu_viet := not chu_viet;
để đổi kiểu gõ tiếng Việt sang tiếng Anh và ngược lại.
Unit sử dụng một mảng để lưu trữ bảng font. Khai báo mảng này nằmtrong
file..TCVN.FON và được chèn vào unit như một file include (có thể thayđổi để có một
bảng font đẹp hơn).
Chương trình TEST.PAS minhhọa một cách đơn giản việc sử dụng unit.
uses keyvntrs,crt;
var s:string;
ch:char;
begin
loadfonttext;{nap font de co the hien tieng viet len man hinh}
installtelex;{cai dat ngat moi de co the nhap tieng viet}
clrscr;

writeln('Bộ gõTiếng Việt. Phiên bản 0.1a (c) 2001,01.');
writeln('Đỗ HồngNgọc, lớp D5C20, Genetic - ĐHBKHN');
writeln('Riêng tặng chịHường!'#13#10);
writeln('Để gõtiếng Anh ngay khi ở chế độ gõ tiếng Việt, bạn gõ dấu hai lần.');
writeln('NhấnCtrl+Alt để chuyển đổi chế độ gõ Anh - Việt.'#13#10);
Writeln(#13#10'Nhập một xâu :');
readln(s);
removetelex; {tralai cac ngat cu. Ket thuc nhap tieng Viet}
closefonttext;{tra lai font mac dinh cua he thong}
end.
Do đây là một unit nên khi biên dịch, mã của nó được gắn vào file.EXE; vì thế chúng ta
không cần phải tìm xem VRD.EXE hay TBK có trên đĩa haykhông. Unit này hạn chế là chỉ
hoạt động chính xác đối với chế độ TEXT 16 màu,không làm việc với chế độ đồ họa.
Bạn nào cần chương trìnhnguồn có thể liên hệ với toà soạn hoặc trực tiếp với tác giả qua
địa chỉ trên.Vì khả năng có hạn nên chương trình còn dài. Hy vọng nhận được nhiều góp ý
đểchương trình hoàn thiện hơn.
Đỗ Hồng Ngọc
D5C20, trung tâm Genetic - ĐHBK Hà Nội
Email :

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×