Tiếng Việt trong Tubor Pascal
Hỗ trợ gõ tiếng Việt bằng ngôn ngữ lập trình PascalĐỗ Hồng NgọcHiệ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ệtprocedure LoadfontText;assembler;asmmov ax,seg fonmov es,axmov bp,offset fonmov ax,1110hmov bx,1000hmov cx,0100hxor dx,dxint 10hend;- CloseFontText : Loại bỏbảng font tiếng Việtprocedure CloseFontText;assembler;asmmov ax,1114h xor bl,blint 10hend;- InstallTelex : Cài đặt bộ gõ tiếng Việtprocedure InstallTelex;beginlongint(@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ệtprocedure RemoveTelex;beginasm 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;beginloadfonttext;{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ọcD5C20, trung tâm Genetic - ĐHBK Hà NộiEmail : ngoc412@yahoo.com . 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ệtprocedure. 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