Thiết kế giao diện khai thác từ điển tra nghĩa pháp - Anh - Việt (fev dictionary)

TÓM TẮT ĐỒ ÁN Đề tài: Thiết kế giao diện khai thác từ điển tra nghĩa Pháp - Anh - Việt (FEV Dictionary). Tóm tắt: Tin học được ứng dụng phổ biến trong nhiều lĩnh vực, về vi mô lẫn vĩ mô. Đối với các ứng dụng tin học liên quan đến giao tiếp người - máy thì vấn đề giao diện luôn được đặt lên hàng đầu, bởi vì con người chỉ tiếp nhận được thông tin từ máy tính thông qua các kí hiệu, hình ảnh và âm thanh mà thôi. Một lĩnh vực mà mọi người quan tâm ngày nay là xử lý ngôn ngữ tự nhiên trên máy tính. Công việc này có thể chia làm nhiều giai đoạn và được xử lý riêng lẽ. Một giai đoạn khá quan trọng là xây dựng cơ sở dữ liệu từ vựng cho các ngôn ngữ khác nhau nhằm tập hợp có hệ thống "vốn từ" cho máy tính. GETA đã làm việc này bằng cách hình thành một dự án nhằm xây dựng các chuyển đổi tương đương về nghĩa của từ vựng từ tiếng Pháp sang các ngôn ngữ khác thông qua tiếng Anh. Kết quả của sự chuyển đổi này được chứa trong các tập tin dạng RTF và có thể xem bởi các ứng dụng tương thích. Dự án của GETA đưa ra đã được hiện thực trên một số nước như Malai, Thái Lan để tạo nên các từ điển FEM, FET dưới nhiều hình thức và sử dụng trên nhiều môi trường khác nhau. Đặc biệt là các loại từ điển chứa trên CD-ROM dưới dạng Web. Đối với Việt Nam, dự án này được bắt đầu từ cuối năm 1999 và dự định thực hiện trong 2 năm để thêm phần nghĩa của tiếng Việt và các phần phiên âm tương ứng vào cơ sở dữ liệu từ vựng dạng RTF. Đồ án này thực hiện việc tìm hiểu cách tổ chức thông tin trong tập tin cơ sở dữ liệu từ vựng RTF nói trên, sau đó tìm hiểu các yêu cầu cụ thể của một giao diện người - máy và cuối cùng là đi thiết kế một giao diện nhằm khai thác các tập tin RTF chứa cơ sở dữ liệu từ vựng. Cụ thể, tôi đã xây dựng được một chương trình từ điển Pháp - Anh - Việt sử dụng trên môi trường Microsoft Windows, nó có thể giúp người sử dụng tra nghĩa từ vựng giữa hai ngôn ngữ bất kỳ trong 3 ngôn ngữ Pháp, Anh và Việt. Ngoài ra, chương trình này còn cho phép thực hiện một số thao tác khác giống như nhiều chương trình từ điển sử dụng trên máy tính hiện có. MỤC LỤC LỜI CẢM ƠN 3 LỜI CAM ĐOAN 4 TÓM TẮT ĐỒ ÁN 5 MỤC LỤC 6 LỜI NÓI ĐẦU 9 PHẦN 1 11 GIỚI THIỆU VỀ TỪ ĐIỂN VÀ CÁC VẤN ĐỀ LIÊN QUAN 11 I. CÁC VẤN ĐỀ VỀ TỪ ĐIỂN 12 1. Các khái niệm về từ điển 12 2. Tình hình phát triển của từ điển hiện nay 12 II. XÂY DỰNG TỪ ĐIỂN NHỜ TIN HỌC 13 III. GIỚI THIỆU DỰ ÁN TỪ ĐIỂN FEV 14 1. Nguồn gốc dự án từ điển FEV 14 2. Cơ sở dữ liệu từ vựng của từ điển FEV 15 3. Cấu trúc một "mục từ" của CSDL từ vựng 17 4. Ưu điểm của từ điển FEV 20 PHẦN 2 22 THIẾT KẾ GIAO DIỆN KHAI THÁC TỪ ĐIỂN TRA NGHĨA FEV 22 I. TỔNG QUAN 23 II. TÌM HIỂU VỀ GIAO DIỆN NGƯỜI - MÁY 23 1. Một giao diện tốt là gì? 23 2. Thiết kế giao diện nội, ngoại vi (Internal, External Interface Design) 24 3. Một số nguyên tắc khi thiết kế giao diện cho ứng dụng 24 a. Lựa chọn các kiểu thiết kế giao diện 25 b. Hiển thị thông tin 26 c. Nhập liệu 26 d. Màu sắc 27 e. Xử lý lỗi 27 f. Công cụ trợ giúp 27 4. Kết luận 28 III. YÊU CẦU VỀ GIAO DIỆN CỦA TỪ ĐIỂN FEV 28 IV. TỔ CHỨC CƠ SỞ DỮ LIỆU TỪ VỰNG CỦA GIAO DIỆN FEV 28 1. Lựa chọn kiểu cơ sở dữ liệu 28 2. Tổ chức cơ sở dữ liệu 29 V. CÁC PHƯƠNG ÁN GIAO TIẾP VỚI NGƯỜI SỬ DỤNG 31 1. Biểu diễn các ngôn ngữ của từ điển trên một giao diện 31 2. Phương án biểu diễn thứ nhất cho từ điển FEV 32 3. Phương án biểu diễn thứ hai cho từ điển FEV 33 4. Lựa chọn phương án biểu diễn cho từ điển FEV 34 VI. MÔ HÌNH TỔNG QUÁT VÀ CÁC BƯỚC CỤ THỂ HOÁ 34 1. Mô hình tổng quát của từ điển FEV 35 2. Sơ đồ khối biểu diễn hoạt động của từ điển FEV 35 3. Lựa chọn công cụ và môi trường để thiết kế giao diện 37 4. Xây dựng thuật toán và tạo mã cho chương trình 38 a. Đọc tập tin RTF và cập nhật vào tập tin cơ sở dữ liệu MDB 38 b. Chuyển mã 39 c. Hiển thị phần giải thích nghĩa 40 d. Một số yêu cầu khác từ người sử dụng 41 VII. TRÌNH BÀY GIAO DIỆN 43 PHẦN 3 48 KẾT LUẬN VÀ HƯỚNGPHÁTTRIỂN 48 I. KẾT QUẢ ĐẠT ĐƯỢC 49 II. HƯỚNG PHÁT TRIỂN CỦA ỨNG DỤNG TRONG TƯƠNG LAI 50 1. Mở rộng từ điển FEV 50 2. Tăng cường khả năng tra nghĩa của từ bằng nhiều phương pháp 50 3. Thiết kế giao diện với nhiều ngôn ngữ khác nhau 51 4. Tăng cường tính năng động của giao diện 51 5. Tham số hoá chương trình 51 PHỤ LỤC 52 TÀI LIỆU THAM KHẢO 60

doc60 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2385 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Thiết kế giao diện khai thác từ điển tra nghĩa pháp - Anh - Việt (fev dictionary), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
n vµ ®Ých (bao gåm Ph¸p - Anh, Ph¸p ViÖt, Anh - Ph¸p, Anh - ViÖt, ViÖt - Ph¸p, ViÖt - Anh). H×nh 8 tr×nh bµy h×nh ¶nh cña giao diÖn theo ph­¬ng ¸n thø hai. French - English - Vietnamese Dictionary Novembre Th¸ng m­êi mét French-Vietnamese H×nh 8 - H×nh ¶nh cña giao diÖn theo ph­¬ng ¸n thø hai. MÆc dï c¸ch tr×nh bµy nµy kh«ng nh­ ph­¬ng ¸n thø nhÊt nh­ng vÒ b¶n chÊt th× còng t­¬ng tù nh­ vËy. ë ph­¬ng ¸n nµy chØ thÓ hiÖn mçi lóc hai ng«n ng÷ kh¸c nhau bao gåm mét ng«n ng÷ nguån vµ mét ng«n ng÷ ®Ých. C¸ch tr×nh bµy theo ph­¬ng ¸n nµy sÏ gÆp mét vµi ­u vµ nh­îc ®iÓm chÝnh sau : ¦u ®iÓm : Ph­¬ng ¸n nµy ngoµi viÖc h¹n chÕ c¸c nh­îc ®iÓm cña ph­¬ng ¸n thø nhÊt cßn cã mét sè ­u ®iÓm sau : thÝch hîp cho ng­êi sö dông chØ cÇn tra nghÜa cña hai ng«n ng÷ t­¬ng øng; phÇn gi¶i thÝch nghÜa cña ng«n ng÷ ®Ých râ rµng h¬n, ®Æc biÖt d¹ng giao diÖn nµy kh¸ quen thuéc ®èi víi ng­êi sö dông do ®ã kh«ng ph¶i tèn nhiÒu thêi gian ®Ó lµm quen. Nh­îc ®iÓm : Kh«ng thÓ hiÖn ®­îc tÝnh ®a ng÷ cña tõ ®iÓn do cïng mét lóc chØ cã thÓ xem ®­îc hai ng«n ng÷; ph¶i mÊt thêi gian ®Ó lùa chän l¹i c¸c ng«n ng÷ nguån vµ ®Ých tõ danh s¸ch. Mçi ph­¬ng ¸n trªn ®©y ®Òu cã lîi ®iÓm riªng, viÖc chän mét ph­¬ng ¸n ®Ó thiÕt kÕ lµ rÊt khã kh¨n. Do ®ã cÇn ph¶i c©n nh¾c khi lùa chän ®Ó ®¶m b¶o viÖc n©ng cÊp sau nµy. Lùa chän ph­¬ng ¸n biÓu diÔn cho tõ ®iÓn FEV Trªn ®©y lµ hai ph­¬ng ¸n mµ t«i ®­a ra ®Ó thiÕt kÕ giao diÖn khai th¸c tõ ®iÓn tra nghÜa gi÷a ng­êi sö dông vµ m¸y tÝnh, mét trong hai ph­¬ng ¸n nµy ®Òu cã thÓ ®¸p øng ®­îc yªu cÇu cho tõ ®iÓn tra nghÜa FEV. Nh­ng, nh­ ®· ®Ò cËp ë phÇn "Giíi thiÖu dù ¸n tõ ®iÓn FEV", tõ ®iÓn FEV chØ lµ b­íc ®Çu cho mét tõ ®iÓn ®a ng÷ thËt sù cña dù ¸n. Do ®ã kh¶ n¨ng ph¸t triÓn cña tõ ®iÓn FEV thµnh mét tõ ®iÓn gåm nhiÒu h¬n 3 ng«n ng÷ lµ cã thÓ x¶y ra (®Çu tiªn cã thÓ lµ FEVMTL : French - English - Vietnamese - Malaysia - Thai - Laotian). Nh­ vËy, chän mét ph­¬ng ¸n ®Ó dÔ dµng ph¸t triÓn sau nµy lµ rÊt khã. Mét ®Æc ®iÓm quan träng kh¸c lµ khi sè ng«n ng÷ t¨ng lªn th× tæ hîp c¸c chuyÓn ®æi gi÷a hai ng«n ng÷ sÏ t¨ng rÊt nhanh vµ viÖc thiÕt kÕ mét giao diÖn lµ rÊt khã. Chóng ta cã thÓ thÊy mét c©y biÓu diÔn c¸c kh¶ n¨ng x©y dùng giao diÖn khai th¸c tõ ®iÓn tra nghÜa d¹ng song ng÷ cña c¬ së d÷ liÖu tõ ®iÓn FEVMTL nh­ H×nh 9. FEVMTL V-FEMTL M-FEVTL T-FEVML E-FVMTL F-EVMTL L-FEVMT V-E V-F V-L V-T V-M F-V F-E F-L F-T F-M E-V E-F E-L E-T E-M M-E M-F M-L M-T M-V L-E L-F L-T L-M L-V T-E T-F T-L T-M T-V H×nh 9 - C©y biÓu diÔn c¸c kh¶ n¨ng chän lùa mét cÆp ng«n ng÷ kh¸c nhau. Mét c¸ch h×nh thøc ta cã thÓ thÊy r»ng víi c¬ së d÷ liÖu cã chøa 6 ng«n ng÷ th× sÏ cã 30 c¸ch chän lùa c¸c cÆp ng«n ng÷ kh¸c nhau. Vµ nh­ thÕ viÖc chän ph­¬ng ¸n thø nhÊt tá ra r¾c rèi vµ kh¶ n¨ng ®¸p øng cña kh«ng gian mµn h×nh khã cã thÓ ®­îc. MÆc dï vËy, theo c¸ch tr×nh bµy trªn th× ta cã thÓ chän ph­¬ng ¸n biÓu diÔn thø hai do ph­¬ng ¸n nµy dÔ thùc hiÖn, nã cã thÓ ®¶m b¶o ®­îc c¸c yªu cÇu cÇn thiÕt vµ chóng ta cã thÓ chän c¸c cÆp ng«n ng÷ nguån vµ ®Ých th«ng qua mét danh s¸ch. Tãm l¹i, chóng ta sÏ dùa trªn c¬ së cña ph­¬ng ¸n biÓu diÔn thø hai ®Ó tiÕp tôc cô thÓ ho¸ c¸c b­íc tiÕp theo còng nh­ x©y dùng mét ch­¬ng tr×nh hoµn chØnh cã d¹ng nh­ ph­¬ng ¸n nµy. M« h×nh tæng qu¸t vµ c¸c b­íc cô thÓ ho¸ §Õn ®©y, chóng ta ®· t×m hiÓu ®Çy ®ñ c¸c yªu cÇu còng nh­ x¸c ®Þnh ®­îc ph­¬ng ¸n thiÕt kÕ vµ tr×nh bµy giao diÖn cho tõ ®iÓn tra nghÜa Ph¸p - Anh - ViÖt. PhÇn nµy t«i sÏ tiÕp tôc tr×nh bµy m« h×nh tæng qu¸t cña ch­¬ng tr×nh, s¬ ®å khèi biÓu diÔn c¸c qu¸ tr×nh giao tiÕp gi÷a ng­êi - m¸y vµ c¸c thuËt to¸n ®­îc cµi ®Æt trong ch­¬ng tr×nh. M« h×nh tæng qu¸t cña tõ ®iÓn FEV Giao diÖn khai th¸c tõ ®iÓn tra ng÷ Ph¸p - Anh - ViÖt thùc hiÖn viÖc giao tiÕp trùc tiÕp gi÷a ng­êi vµ m¸y, nã ®äc d÷ liÖu ®Çu vµo tõ c¸c tËp tin c¬ së d÷ liÖu tõ vùng d¹ng RTF, cËp nhËt vµo tËp tin MDB vµ hiÓn thÞ theo c¸c yªu cÇu cña ng­êi sö dông. H×nh 10 tr×nh bµy tæng qu¸t m« h×nh nµy. RTF MDB Giao tiÕp víi ng­êi sö dông H×nh 10 - M« h×nh tæng qu¸t cña tõ ®iÓn FEV. S¬ ®å khèi biÓu diÔn ho¹t ®éng cña tõ ®iÓn FEV ThËt sù th× qu¸ tr×nh chuyÓn ®æi vµ thùc hiÖn yªu cÇu cña ng­êi sö dông diÔn ra phøc t¹p h¬n th«ng qua c¸c nót lÖnh vµ c¸c Form giao tiÕp. Nh­ng tõ m« h×nh trªn, chóng ta cã thÓ h×nh dung ®­îc s¬ ®å khèi tæng qu¸t cña ch­¬ng tr×nh tõ ®iÓn FEV. H×nh 11 biÓu diÔn s¬ ®å khèi nµy. Khëi ®éng Tån t¹i tËp tin MDB? Th«ng b¸o Chê nhËn yªu cÇu tõ ng­êi sö dông Cã Kh«ng X¸c ®Þnh, t¹o míi hay cËp nhËt tËp tin CSDL Yªu cÇu vÒ CSDL tõ vùng Tr×nh bµy phÇn gi¶i thÝch nghÜa cña tõ cho ng­êi sö dông NÕu tËp tin MDB ®· cã vµ yªu cÇu tra tõ KÕt thóc Yªu cÇu tho¸t khái ch­¬ng tr×nh Œ  Ž H×nh 11 - S¬ ®å khèi tæng qu¸t cña tõ ®iÓn FEV. Trong s¬ ®å khèi trªn, chóng ta cã thÓ thÊy r»ng, sau khi ch­¬ng tr×nh khëi ®éng, nã sÏ thùc hiÖn viÖc kiÓm tra xem ®· tån t¹i tËp tin c¬ së d÷ liÖu MDB (ë ®©y chÝnh lµ tËp tin DBSFEVDB.MDB) ch­a? NÕu ®· tån t¹i th× chuyÓn sang tr¹ng th¸i chê yªu cÇu cña ng­êi sö dông, ng­îc l¹i th× th«ng b¸o cho ng­êi sö dông thùc hiÖn c¸c thao t¸c cÇn thiÕt nh»m t¹o ra tËp tin ®ã vµ cËp nhËt c¬ së d÷ liÖu tõ tËp tin RTF. Mét ®iÓm kh¸c cña s¬ ®å khèi trªn lµ qu¸ tr×nh chê nhËn yªu cÇu tõ ng­êi sö dông. NÕu yªu cÇu cña ng­êi sö dông lµ tr­êng hîp Œ, tøc lµ yªu cÇu vÒ CSDL tõ vùng, th× ch­¬ng tr×nh sÏ chuyÓn sang thùc hiÖn c¸c thao t¸c ®èi víi c¬ së d÷ liÖu tõ vùng. §iÒu nµy sÏ ®­îc chi tiÕt ho¸ ë H×nh 12. NÕu yªu cÇu cña ng­êi sö dông lµ tr­êng hîp  (tr­êng hîp nµy chØ ®­îc thùc hiÖn khi ®· cã c¬ së d÷ liÖu MDB) th× ch­¬ng tr×nh sÏ t×m kiÕm nghÜa tõ cÇn tra vµ hiÓn thÞ lªn mµn h×nh. Cuèi cïng, nÕu yªu cÇu cña ng­êi sö dông lµ tr­êng hîp Ž, tøc lµ tho¸t khái ch­¬ng tr×nh, th× ch­¬ng tr×nh sÏ thùc hiÖn c¸c thao t¸c ®ãng c¬ së d÷ liÖu vµ kÕt thóc. ThËt sù th× qu¸ tr×nh thao t¸c vµ xö lý ®èi víi c¬ së d÷ liÖu tõ vùng lµ phÇn quan träng nhÊt cña ch­¬ng tr×nh tõ ®iÓn FEV. Qóa tr×nh nµy thùc hiÖn viÖc ®äc tËp tin RTF vµ cËp nhËt c¸c th«ng tin cÇn thiÕt vµo tËp tin c¬ së d÷ liÖu MDB. H×nh 12 tr×nh bµy s¬ ®å khèi qu¸ tr×nh thao t¸c ®èi víi c¬ së d÷ liÖu. Chê nhËn yªu cÇu xö lý CSDL tõ NSD X¸c ®Þnh tËp tin MDB KiÓm tra vµ t¹o míi tËp tin MDB víi c¸c cÊu tróc cÇn thiÕt T¹o míi tËp tin MDB CËp nhËt tËp tin MDB CËp nhËt danh s¸ch tõ vùng §äc tËp tin RTF vµ cËp nhËt vµo tËp tin MDB Œ  Ž H×nh 12 - S¬ ®å khèi ph©n r· qu¸ tr×nh xö lý CSDL Víi s¬ ®å khèi nµy, chóng ta thÊy r»ng cã thÓ cã 3 kh¶ n¨ng x¶y ra ®èi víi viÖc xö lý c¬ së d÷ liÖu tõ vùng. Tr­êng hîp Œ, x¸c ®Þnh tËp tin MDB, tøc lµ ch­¬ng tr×nh sÏ thùc hiÖn viÖc chän mét tËp tin c¬ së d÷ liÖu tõ vùng MDB cã s½n kh¸c cho ch­¬ng tr×nh. NÕu yªu cÇu thuéc tr­êng hîp , tøc lµ t¹o míi tËp tin MDB, th× ch­¬ng tr×nh sÏ yªu cÇu x¸c ®Þnh tªn tËp tin MDB míi nµy vµ t¹o ra c¸c cÊu tróc cÇn thiÕt. Ngoµi ra, ch­¬ng tr×nh còng yªu cÇu tËp tin c¬ së d÷ liÖu tõ vùng RTF ®Ó ®äc vµ l­u vµo tËp tin MDB võa t¹o ra. Cuèi cïng, nÕu yªu cÇu thuéc tr­êng hîp Ž th× ch­¬ng tr×nh sÏ yªu cÇu x¸c ®Þnh tËp tin c¬ së d÷ liÖu tõ vùng RTF ®Ó cËp nhËt c¸c môc tõ vµo c¬ së d÷ liÖu MDB hiÖn hµnh mµ ch­¬ng tr×nh ®ang sö dông. Mét phÇn quan träng kh¸c trong ch­¬ng tr×nh tõ ®iÓn FEV lµ viÖc hiÓn thÞ phÇn gi¶i thÝch nghÜa cña tõ vùng. §©y lµ qóa tr×nh kh¸ quan träng ®èi víi hÇu hÕt c¸c tõ ®iÓn cã ®é thÈm mü. H×nh 13 tr×nh bµy s¬ ®å khèi qu¸ tr×nh hiÓn thÞ c¸c th«ng tin vÒ nghÜa cña tõ t­¬ng øng víi ng«n ng÷ ®Ých. T×m kiÕm b¶ng ghi thÝch hîp víi kho¸ lµ ng«n ng÷ nguån X¸c ®Þnh ng«n ng÷ nguån vµ ®Ých ®­îc chän ChuyÓn m· vµ xuÊt theo ®Þnh d¹ng c¸c tr­êng thuéc ng«n ng÷ ®Ých H×nh 13 - S¬ ®å khèi qóa tr×nh hiÓn thÞ nghÜa cña tõ. Chóng ta cã thÓ cã nhiÒu th¾c m¾c trong qu¸ tr×nh hiÓn thÞ nghÜa cña tõ. Song do ®©y lµ mét tõ ®iÓn tam ng÷, do ®ã ®Çu tiªn cÇn ph¶i x¸c ®Þnh ng«n ng÷ nguån vµ ®Ých. ViÖc x¸c ®Þnh ng«n ng÷ nguån vµ ®Ých nh»m môc ®Ých chän ra c¸c tr­êng t­¬ng øng ®Ó t×m kiÕm vµ hiÓn thÞ. Sau khi ®· x¸c ®Þnh ®­îc c¸c ng«n ng÷ nguån vµ ®Ých, ch­¬ng tr×nh sÏ t×m kiÕm b¶ng ghi trong Table FEVD_equ thuéc c¬ së d÷ liÖu MDB tho¶ m·n ®iÒu kiÖn, tøc lµ sÏ t×m kiÕm b¶ng ghi cã tr­êng tõ vùng thuéc ng«n ng÷ nguån gièng víi th«ng tin mµ ng­êi dïng yªu cÇu. TiÕp theo, c¸c th«ng tin liªn quan ®Õn ng«n ng÷ ®Ých ë b¶ng ghi võa t×m ®­îc sÏ ®­îc lÊy ra vµ cã thÓ qua b­íc chuyÓn m· (nÕu cÇn). Cuèi cïng, c¸c th«ng tin nµy sÏ ®­îc ®Þnh d¹ng vµ hiÓn thÞ lªn mµn h×nh. Lùa chän c«ng cô vµ m«i tr­êng ®Ó thiÕt kÕ giao diÖn Trong ph¹m vi ®å ¸n nµy, t«i sö dông m«i tr­êng Microsoft Windows lµm m«i tr­êng chÝnh cho øng dông. Së dÜ nh­ vËy v× m«i tr­¬ng nµy ®­îc sö dông rÊt phæ biÕn hiÖn nay vµ viÖc thùc tÕ ho¸ ®­îc trªn m«i tr­êng nµy sÏ lµm c¬ së ®Ó thùc hiÖn cho c¸c m«i tr­êng kh¸c. HÇu hÕt c¸c ng«n ng÷ lËp tr×nh phæ biÕn hiÖn nay trªn m«i tr­êng Windows ®Òu cã thÓ gióp ta thiÕt kÕ mét giao diÖn ®¸p øng ®Çy ®ñ c¸c yªu cÇu cña ®å ¸n nµy. Mét trong c¸c c«ng cô phæ biÕn mµ c¸c lËp tr×nh viªn trªn hÖ ®iÒu hµnh Windows cña Microsoft th­êng hay sö dông lµ : Visual Basic, Visual FoxPro, Visual C++, Visual J++, Borland Delphi, Borland C++,… §Æc ®iÓm chÝnh cña c¸c ng«n ng÷ lËp tr×nh nµy lµ hç trî kh¶ n¨ng lËp tr×nh h­íng ®èi t­îng. Ngoµi ra, ®a sè c¸c ng«n ng÷ lËp tr×nh nµy ®iÒu cung cÊp s½n nhiÒu líp (Class), ®èi t­îng (Object) cïng víi nhiÒu ph­¬ng thøc (Method) vµ c«ng cô tiÖn Ých kh¸c (Tools) phôc vô cho viÖc thao t¸c trªn tËp tin vµ c¬ së d÷ liÖu. Víi sù phæ biÕn cña hÖ ®iÒu hµnh Windows hiÖn nay, còng nh­ ng«n ng÷ Visual Basic lu«n ®­îc h·ng Microsoft quan t©m ph¸t triÓn nªn t«i chän ng«n ng÷ Visual Basic (phiªn b¶n 6.0 [15]) lµm c«ng cô lËp tr×nh cho giao diÖn cña tõ ®iÓn FEV sö dông trªn hÖ ®iÒu hµnh Windows. Ngoµi yÕu tè trªn, viÖc chän ng«n ng÷ Visual Basic cßn cã mét sè lîi ®iÓm sau : Tµi liÖu tham kh¶o nhiÒu vµ hÇu hÕt ®­îc dÞch ra tiÕng ViÖt. M«i tr­êng lËp tr×nh th©n thiÖn, kiÓm tra lçi vµ gì rèi dÔ dµng. DÔ häc vµ dÔ lËp tr×nh do ng«n ng÷ nµy kh¸ phæ biÕn vµ ®­îc nhiÒu ng­êi sö dông. Hç trî hÇu hÕt c¸c ®èi t­îng cÇn thiÕt cho øng dông mµ ®å ¸n nµy x©y dùng. Hç trî kh¶ n¨ng gäi c¸c hµm Windows API. Ngoµi c¸c lîi ®iÓm trªn, ng«n ng÷ Visual Basic cßn cã nhiÒu lîi ®iÓm kh¸c ®Ó cã thÓ gióp c¸c lËp tr×nh viªn chuyªn nghiÖp x©y dùng c¸c øng dông cã gi¸ trÞ th­¬ng m¹i. X©y dùng thuËt to¸n vµ t¹o m· cho ch­¬ng tr×nh §äc tËp tin RTF vµ cËp nhËt vµo tËp tin c¬ së d÷ liÖu MDB Chóng ta sÏ sö dông ®iÒu khiÓn RichTextBox ®Ó ®äc tËp tin RTF b»ng ph­¬ng thøc LoadFile. Sau khi tËp tin RTF ®­îc ®äc vµo ®iÒu khiÓn RichTextBox, néi dung tËp tin RTF ®­îc tr×nh bµy nh­ mét v¨n b¶n th«ng th­êng víi nhiÒu ®Þnh d¹ng kh¸c nhau cña c¸c STYLE. Chóng ta sö dông c¸c thao t¸c trùc tiÕp trªn ®èi t­îng nµy th«ng qua c¸c ph­¬ng thøc vµ thuéc tÝnh ®­îc cung cÊp bëi ®iÒu khiÓn RichTextBox ®Ó lÊy ra c¸c th«ng tin cÇn thiÕt. ë ®©y, t«i sö dông hai ®iÒu khiÓn RichTextBox cã tªn lµ rtfSource vµ rtfBuffer. Trong ®ã rtfSource chøa toµn bé néi dung cña tËp tin RTF vµ rtfBuffer chøa néi dung mét môc tõ ®­îc t¸ch ra tõ rtfSource (vÝ dô : H×nh 3, H×nh 4 tr×nh bµy mét môc tõ). Së dÜ ph¶i sö dông hai ®iÒu khiÓn RichTextBox v× nh­ thÕ sÏ dÔ qu¶n lý vµ kiÓm so¸t h¬n. Mét ®iÒu quan träng kh¸c ®­îc ®Ò cËp ë ®©y lµ c¸c thuéc tÝnh cña nh÷ng ®o¹n v¨n b¶n chøa trong tËp tin RTF sÏ cho ta biÕt ®­îc ®o¹n ®ã thuéc phÇn nµo. B¶ng 2 còng cung cÊp thuéc tÝnh ®ñ ®Ó nhËn biÕt vµ t¸ch riªng c¸c thµnh phÇn. VËy, thuËt to¸n ®­îc viÕt b»ng ng«n ng÷ gi¶ (pseudo-code) ®Ó ®äc mét tËp tin RTF vµ cËp nhËt vµo tËp tin c¬ së d÷ liÖu MDB ®­îc thÓ hiÖn nh­ sau : Begin {§äc toµn bé tËp tin CSDL tõ vùng RTF vµo rtfSource}; While Not EOF(rtfSource) Do Begin rtfBuffer = ""; {§äc mét môc tõ míi vµo rtfBuffer}; While Not EOF(rtfBuffer) Do Begin {T¸ch mét STYLE}; {Dùa vµo B¶ng 2 ®Ó g¸n phÇn võa ®äc víi biÕn t­¬ng øng}; End; {CËp nhËt tõ vùng vµo tËp tin MDB tõ c¸c biÕn t­¬ng øng} End; End; Trong ch­¬ng tr×nh tõ ®iÓn FEV, t«i sö dông hµm ReadBlock ®Ó thùc hiÖn viÖc ®äc mét môc tõ tõ rtfSource vµo rtfBuffer vµ thñ tôc AppendBlockToFEV_DB sÏ thùc hiÖn viÖc cËp nhËt c¸c STYLE vµo b¶ng FEVD_equ trong tËp tin c¬ së d÷ liÖu MDB [Phô lôc]. ChuyÓn m· B­íc chuyÓn m· cã thÓ ®­îc thùc hiÖn theo 2 c¸ch kh¸c nhau : chuyÓn m· toµn bé tËp tin RTF råi míi ®äc vµ cËp nhËt vµo tËp tin c¬ së d÷ liÖu tõ vùng MDB hoÆc ®äc vµ cËp nhËt vµo tËp tin c¬ së d÷ liÖu tõ vùng MDB, sau ®ã khi hiÓn thÞ ra mµn h×nh míi chuyÓn m·. Nh­ ®Ò cËp tr­íc ®©y, phÇn chuyÓn m· ®­îc hç trî bëi [17]. §©y lµ mét ®å ¸n víi ®Ò tµi x©y dùng bé chuyÓn m· tiÕng ViÖt ®a n¨ng dùa trªn m· trôc (pivot code). Tøc lµ, c¸c m· ®­îc chuyÓn ®æi qua l¹i th«ng qua mét m· thø ba vµ m· nµy ®­îc gäi lµ m· trôc. Th«ng th­êng, ng­êi ta sö dông c¸c bé m· chØ sö dông c¸c kÝ tù thuéc b¶ng m· ASCII 7 bÝt ®Ó lµm m· trôc. VÝ dô m· TELEX cã thÓ sö dông ®Ó lµm bé m· trôc. Nh­ vËy víi c©u "Tr­êng §¹i Häc Kü ThuËt" th× m· TELEX t­¬ng øng lµ "Truwowfng DDaji Hojc Kyx Thuaajt". H×nh 14 biÓu diÔn bé m· trôc TELEX víi mét sè m· th«ng dông kh¸c. H×nh 14IBM CP 01129 Microsoft CP 1258 VNI VietWare TCVN3 BK-HCM VISCII UNICODE TELEX - Bé m· trôc TELEX. PhÇn nµy tr×nh bµy c¸ch khai b¸o c¸c líp (Class), ®èi t­îng (Object) vµ gäi hµm tõ øng dông chuyÓn m· ®a n¨ng do [17] x©y dùng. §Ó giao diÖn tõ ®iÓn FEV khai th¸c ®­îc c¸c hµm chuyÓn m·, ta khai b¸o hai ®èi t­îng nh­ sau : ... Dim OApp as Object, OVnTable as Object Set OApp = CreatObject ("VNCVAuto.Application") If OApp Is Nothing Then {Xö lý lçi} End If ... Set OVnTable = OApp.pVNTblsPtr If OVnTable Is Nothing Then {Xö lý lçi} End If ... Sau ®ã chóng ta sö dông hµm thµnh phÇn ConvertVNStr cña ®èi t­îng OVnTable ®Ó chuyÓn m· mét ®o¹n v¨n b¶n. CÊu tróc c©u lÖnh nh­ sau : StrResult = OVnTable.ConvertVNStr (StrSource, TargetCode, SourceCode, CharAtt) Trong ®ã, c¸c tham sè cã ý nghÜa nh­ sau : StrResult BiÕn kiÓu String, chøa chuçi ký tù sau khi ®­îc chuyÓn m·. StrSource BiÕn kiÓu String, chøa chuçi ký tù tr­íc khi chuyÓn m·. TargetCode BiÕn kiÓu Interger, x¸c ®Þnh gi¸ trÞ ®Æc tr­ng cho b¶ng m· ®Ých. VÝ dô : VIQR = 15, TCVN3 = 0, VietWare_X = 1,... SourceCode T­¬ng tù nh­ TargetSource, ®©y lµ biÕn kiÓu Interger, x¸c ®Þnh gi¸ trÞ ®Æc tr­ng cho b¶ng m· ®Ých. CharAtt BiÕn kiÓu Boolean, cho biÕt kiÓu ch÷ hoa hay th­êng. Trong ®ã gi¸ trÞ True sÏ ghi nhËn kiÓu kÝ tù viÕt hoa. BiÕn nµy cã hiÖu qu¶ ®èi víi c¸c bé Font 1 byte nh­ TCVN3, VNI 1 byte,... Ngoµi ra nã còng tr¶ vÒ gi¸ trÞ True nÕu chuçi nguån chøa toµn bé c¸c kÝ tù viÕt hoa vµ False nÕu chuçi nguån chøa toµn bé kÝ tù viÕt th­êng. HiÓn thÞ phÇn gi¶i thÝch nghÜa PhÇn gi¶i thÝch nghÜa ®­îc thÓ hiÖn th«ng qua mét ®iÒu khiÓn RichTextBox cã tªn rtbox_Description. Qu¸ tr×nh hiÓn thÞ nµy ®­îc thùc hiÖn nhê thñ tôc UpdateDesciption n»m trong Form chÝnh, trong thñ tôc nµy sÏ thùc hiÖn mét sè thao t¸c trªn tËp tin cë d÷ liÖu MDB ®Ó chän mét b¶ng ghi (Record) thÝch hîp, sau ®ã hiÓn thÞ ra mµn c¸c th«ng tin liªn quan ®Õn ng«n ng÷ ®Ých theo mét vµi ®Þnh d¹ng. §o¹n ch­¬ng tr×nh b»ng ng«n ng÷ gi¶ d­íi ®©y sÏ m« t¶ mét phÇn thñ tôc UpdateDescription. ... {KiÓm tra vµ g¸n c¸c gi¸ trÞ cho Ng«n_ng÷_nguån vµ Ng«n_ng÷_®Ých}; If Ng«n_ng÷_nguån = French Then Begin {T×m kiÕm b¶ng ghi cã tr­êng FEVD_equ.entry = Tõ_cÇn_tra}; {CËp nhËt Tõ_cÇn_tra vµo Table phô chøa c¸c tõ tiÕng Ph¸p ®· tra}; End; Else If Ng«n_ng÷_nguån = English Then Begin {T×m kiÕm b¶ng ghi cã tr­êng FEVD_equ.english_equ = Tõ_cÇn_tra} {CËp nhËt Tõ_cÇn_tra vµo Table phô chøa c¸c tõ tiÕng Anh ®· tra}; End; Else Begin {T×m kiÕm b¶ng ghi cã tr­êng FEVD_equ.viet_equ = Tõ_cÇn_tra} {CËp nhËt Tõ_cÇn_tra vµo Table phô chøa c¸c tõ tiÕng ViÖt ®· tra} End; If Ng«n_ng÷_®Ých = French Then {LÊy c¸c tr­êng entry, french_pron, french_cat,french_sentence ra c¸c biÕn t­¬ng øng vµ xuÊt cã ®Þnh d¹ng c¸c tr­êng nµy ra ®iÒu khiÓn rtbox_Description}; Else If Ng«n_ng÷_®Ých = English Then {LÊy c¸c tr­êng english_equ, english_sentence ra c¸c biÕn t­¬ng øng vµ xuÊt cã ®Þnh d¹ng c¸c tr­êng nµy ra ®iÒu khiÓn rtbox_Description}; Else {LÊy c¸c tr­êng viet_equ, viet_equ_pron, viet_sentence ra c¸c biÕn t­¬ng øng vµ xuÊt cã ®Þnh d¹ng c¸c tr­êng nµy ra ®iÒu khiÓn rtbox_Description} ... MÆc dï ®o¹n ch­¬ng tr×nh b»ng ng«n ng÷ gi¶ trªn ch­a chi tiÕt ho¸ c¸c thao t¸c thËt sù nh­ng Ýt ra còng ®· cho chóng ta mét c¸ch nh×n tæng qu¸t vÒ viÖc xuÊt phÇn nghÜa ra mµn h×nh. Ngoµi c¸c thao t¸c trªn ra cßn cã thªm mét vµi thao t¸c kh¸c ®Ó kiÓm tra vµ giíi h¹n hay cho phÐp c¸c yªu cÇu cña ng­êi sö dông. Mét sè yªu cÇu kh¸c tõ ng­êi sö dông Thùc tÕ víi giao diÖn cña tõ ®iÓn FEV th× ng­êi sö dông cã thÓ thùc hiÖn mét vµi thao t¸c kh¸c nh­ : chän lùa ng«n ng÷ nguån vµ ng«n ng÷ ®Ých; xo¸ tõ ®ang ®­îc chän; thªm mét tõ míi vµo tõ ®iÓn; xem tõ tr­íc; hiÓn thÞ danh s¸ch c¸c tõ ®· tra; in néi dung phÇn gi¶i thÝch nghÜa ®ang xem;... ViÖc xö lý c¸c yªu cÇu cña ng­êi sö dông ®­îc thùc hiÖn b»ng c¸ch gäi c¸c thñ tôc t­¬ng øng. C¸c phÇn tr­íc ®©y chóng ta ®· t×m hiÓu ®­îc viÖc ®äc tËp tin RTF, cËp nhËt vµo tËp tin MDB vµ sö dông c¸c tiÖn Ých chuyÓn m·. PhÇn nµy sÏ xem xÐt mét sè thao t¸c kh¸c mµ ch­¬ng tr×nh ®¸p øng theo yªu cÇu cña ng­êi sö dông. HiÓn thÞ danh s¸ch c¸c tõ ®· tra Nh­ ®· ®Ò cËp tr­íc ®©y, viÖc hiÓn thÞ danh s¸ch c¸c tõ ®· tra ®­îc thùc hiÖn b»ng c¸ch t¹o thªm c¸c Table phô míi trong tËp tin MDB, mçi Table phô sÏ cã mét tr­êng chøa c¸c tõ thuéc c¸c ng«n ng÷ kh¸c nhau. C¸c Table phô nµy ®­îc cËp nhËt mçi khi cã mét tõ míi ®­îc tra th«ng qua thñ tôc UpdateDesciption (nhØ nhiªn lµ ph¶i cËp nhËt tõ míi vµo Table phô chøa tõ thuéc ng«n ng÷ t­¬ng øng). Thùc tÕ c¸c Table phô mµ ch­¬ng tr×nh t¹o ra lÇn l­ît cã tªn lµ : EnglishHistory, FrenchHistory, VietHistory vµ tªn c¸c tr­êng lÇn l­ît chøa trong c¸c Table phô ®ã lµ : English, French, Viet. Nh­ vËy, nÕu ch­¬ng tr×nh nhËn yªu cÇu cña ng­êi sö dông lµ "xem danh s¸ch tõ tr­íc" th× nã sÏ xo¸ danh s¸ch c¸c tõ vùng ë cét tõ vùng (trªn Form chÝnh) vµ cËp nhËt c¸c tõ ®· vµo danh s¸ch ®ã. Xem tõ tr­íc §Ó thùc hiÖn viÖc xem tõ tr­íc, chóng ta sÏ sö dông c¸c Table phô chøa danh s¸ch c¸c tõ ®· tra ®­îc tr×nh ë môc trªn. §Çu tiªn, Table phô chøa danh s¸ch c¸c tõ ®· tra thuéc ng«n ng÷ nguån sÏ ®­îc chän, sau ®ã "tiªu ®iÓm" cña b¶ng ghi sÏ ®­îc dêi vÒ cuèi vµ thùc hiÖn c¸c b­íc dÞch chuyÓn ng­îc lªn cho ®Õn khi hÕt nhËn yªu cÇu "tra tõ tr­íc" hoÆc ®Õn b¶ng ghi ®Çu tiªn. §o¹n m· b»ng ng«n ng÷ gi¶ sau sÏ minh ho¹ ®iÒu võa nãi : ... Case Ng«n_ng÷_nguån Of French: If {Tiªu ®iÓm kh¸c b¶ng ghi ®Çu tiªn cña Table FrenchHistory} Then Begin {DÞch tiªu ®iÓm b¶ng ghi cña Table FrenchHistory lªn mét} If {Tiªu ®iÓm n»m ë b¶ng ghi ®Çu tiªn cña Table FrenchHistory} Then {DÞch tiªu ®iÓm ®Õn b¶ng ghi cuèi cïng} Else Begin Tõ_cÇn_tra = FrenchHistory.French; Gäi hµm UpdateDescription; End; End; English: If {Tiªu ®iÓm kh¸c b¶ng ghi ®Çu tiªn cña Table FrenchHistory} Then Begin {DÞch tiªu ®iÓm b¶ng ghi cña Table EnglishHistory lªn mét} .... End; Vietnamese: If {Tiªu ®iÓm kh¸c b¶ng ghi ®Çu tiªn cña Table VietHistory} Then Begin {DÞch tiªu ®iÓm b¶ng ghi cña Table VietHistory lªn mét} ... End; End Case; ... Trong ®o¹n m· trªn, ta thÊy hµm UpdateDescription (xem c¸c phÇn d­íi) sÏ ®­îc gäi mçi khi Tõ_cÇn_tra thay ®æi. Ngoµi cßn cã ®iÒu lÖnh v« hiÖu ho¸ nót lÖnh "xem tõ tr­íc" khi tiªu ®iÓm cña b¶ng ghi trë vÒ b¶ng ghi ®Çu tiªn. Thªm vµo tõ míi ViÖc thªm vµo tõ míi sÏ ®­îc thùc hiÖn th«ng qua ph­¬ng thøc AddNew cña ®èi t­îng d÷ liÖu. Nh­ng tr­íc khi thªm mét tõ míi th× lu«n ph¶i kiÓm tra xem ®· tån t¹i tõ cÇn thªm vµo hay ch­a, nÕu ®· tån t¹i th× th«ng b¸o. Nh­ vËy, viÖc thªm tõ míi sÏ ®­îc biÓu diÔn b»ng ®o¹n m· d­íi d¹ng ng«n ng÷ gi¶ nh­ sau : {X¸c ®Þnh Ng«n_ng÷ cÇn thªm}; {X¸c ®Þnh tr­êng trong Table FEVD_equ ®¹i diÖn cho Ng«n_ng÷ cÇn thªm vµ t×m kiÕm tõ cÇn thªm trong tr­êng ®ã}; If {Cã tõ cÇn thªm trong c¬ së d÷ liÖu} Then §·_tån_t¹i = True; Else §·_tån_t¹i = False; If §·_tån_t¹i Then {Th«ng b¸o ®· tån t¹i vµ tho¸t}; Else Begin {Yªu cÇu c¸c th«ng tin cÇn thiÕt cña mét môc tõ}; {Thªm tõ míi vµo c¬ së d÷ liÖu tõ vùng MDB}; End; Ngoµi ra, ch­¬ng tr×nh tõ ®iÓn FEV ®· thiÕt kÕ mét sè Form phôc vô cho viÖc kiÓm tra, nhËp c¸c néi dung cña c¸c ng«n ng÷ t­¬ng øng. Chóng ta sÏ t×m hiÓu nhiÒu h¬n vÒ c¸ch thªm mét tõ míi ë c¸c phÇn sau. Tr×nh bµy giao diÖn PhÇn nµy chóng ta sÏ xem c¸c h×nh ¶nh DEMO cña ch­¬ng tr×nh tõ ®iÓn FEV vµ c¸ch sö dông còng nh­ khai th¸c tõ ®iÓn nµy. §Çu tiªn H×nh 15 tr×nh bµy giao diÖn chÝnh cña tõ ®iÓn FEV vµ chøc n¨ng cña nh÷ng nót lÖnh trªn Form ®ã. Nót lÖnh thao t¸c CSDL Danh s¸ch ng«n ng÷ nguån vµ ®Ých Danh s¸ch c¸c tõ cã trong c¬ së d÷ liÖu tõ vùng Hép v¨n b¶n nhËp tõ cÇn tra Nót lÖnh tho¸t khái ch­¬ng tr×nh Nót lÖnh më tËp tin trî gióp Nót lÖnh më Form About Nót lÖnh yªu cÇu ch­¬ng tr×nh tra tõ Nót lÖnh hiÓn thÞ danh s¸ch c¸c tõ ®· tra Nót lÖnh quay vÒ tõ võa tra Nót lÖnh yªu cÇu thªm tõ míi Nót lÖnh in phÇn gi¶i thÝch ®ang xem Nót lÖnh ph¸t ©m tõ ®ang xem Khung hiÓn thÞ phÇn gi¶i thÝch nghÜa cña ng«n ng÷ ®Ých Nót lÖnh chØnh söa môc tõ H×nh 15 - Giao diÖn chÝnh cña tõ ®iÓn FEV. Chóng ta thÊy r»ng, H×nh 15 cã giao diÖn víi c¸c phÇn gi¶i thÝch hoµn toµn lµ tiÕng Anh (do tiÕng Anh lµ mét ng«n ng÷ kh¸ phæ biÕn vµ dÔ b¾t ch­íc ®Ó thiÕt kÕ). §©y lµ mét h¹n chÕ cña ch­¬ng tr×nh do ch­a tæ chøc ®­îc giao diÖn theo nhiÒu ng«n ng÷ kh¸c nhau. Mét ®iÓm quan träng kh¸c cña giao diÖn chÝnh lµ danh s¸ch chøa c¸c cÆp ng«n ng÷ nguån vµ ®Ých n»m ë gãc tr¸i trªn cña Form chÝnh. Ng«n ng÷ nguån vµ ®Ých ®­îc ngÇm ®Þnh khi khëi ®éng ch­¬ng tr×nh lµ "French - Vietnamese". H×nh 16 tr×nh bµy h×nh ¶nh cña danh s¸ch c¸c cÆp ng«n ng÷ nguån - ®Ých khi ®­îc chän. H×nh 16 - Danh s¸ch th¶ xuèng liÖt kª c¸c cÆp ng«n ng÷ nguån - ®Ých. NÕu ta chän nót lÖnh ®Ó yªu cÇu c¸c thao t¸c ®èi víi c¬ së d÷ liÖu tõ vùng th× ch­¬ng tr×nh sÏ tr×nh bµy hép tho¹i nh­ h×nh H×nh 17. Tõ hép tho¹i nµy, ng­êi sö dông cã thÓ chän c¸c tËp tin cÇn thiÕt còng nh­ c¸c tuú chän vÒ c¬ së d÷ liÖu kh¸c. H×nh 17 - Hép tho¹i chän lùa c¸c thao t¸c ®èi víi c¬ së d÷ liÖu tõ vùng. §èi víi hép to¹i nµy, c¸c tuú chän cã c¸c chøc n¨ng sau : Open exist FEV database : Më tËp tin c¬ së d÷ liÖu tõ vùng MDB cã s½n vµ sö dông tËp tin nµy lµm c¬ së d÷ liÖu chÝnh cho ch­¬ng tr×nh. Append to current database : §äc tËp tin c¬ së d÷ liÖu tõ vùng RTF vµ cËp nhËt vµo tËp tin MDB ®· cã vµ sö dông tËp tin nµy lµm c¬ së d÷ liÖu chÝnh cho ch­¬ng tr×nh. Create new database : T¹o míi tËp tin c¬ së d÷ liÖu MDB sau ®ã míi cËp nhËt c¬ së d÷ liÖu tõ vùng tõ tËp tin RTF vµo. Sau khi ®· chän lùa ®­îc mét tuú chän th× chóng ta ph¶i chän tËp tin RTF vµ/hoÆc MDB b»ng c¸ch nhÊn vµo nót lÖnh ®Ó më cöa sæ nh­ H×nh 18. H×nh 18 - Hép tho¹i më tËp tin MDB. Nh­ vËy, khi ®· chän lùa xong c¸c tËp tin MDB, RTF vµ nhÊn nót lÖnh Accept th× ch­¬ng tr×nh sÏ lµm c¸c c«ng viÖc ®­îc chän vµ cËp nhËt l¹i danh s¸ch tõ vùng ë giao diÖn chÝnh. Mét hép tho¹i quan träng kh¸c cña ch­¬ng tr×nh lµ hép tho¹i dïng ®Ó thªm vµ cËp nhËt c¸c th«ng tin cña mét môc tõ. NÕu chóng ta chän nót lÖnh ®Ó thªm mét tõ míi vµo c¬ së d÷ liÖu tõ vùng th× sÏ xuÊt hiÖn mét hép tho¹i nhá n»m ngay d­íi gãc tr¸i cña giao diÖn chÝnh gióp chóng ta kiÓm tra sù tån t¹i cña tõ cÇn thªm trong c¬ së d÷ liÖu tõ vùng. H×nh 19 tr×nh bµy hép tho¹i kiÓm tra nµy. H×nh 19 - Hép tho¹i kiÓm tra sù tån t¹i cña tõ cÇn thªm vµo. Trong hép tho¹i nhá ë H×nh 19 ta thÊy cã 3 tuú chän ®Ó ng­êi sö dông x¸c nhËn còng nh­ lùa chän ng«n ng÷ cÇn thªm vµo. Sau khi nhËp vµo mét tõ vµ nhÊn "OK" th× ch­¬ng tr×nh sÏ t×m tõ cÇn thªm vµo trong c¬ së d÷ liÖu øng víi ng«n ng÷ t­¬ng øng. NÕu nh­ tõ cÇn thªm vµo ®· tån t¹i trong c¬ së d÷ liÖu tõ vùng th× ch­¬ng tr×nh sÏ ®­a ra mét th«ng b¸o cho ng­êi sö dông ®Ó b¸p ®· tån t¹i tõ vùng ®ã trong c¬ së d÷ liÖu tõ vùng. Ng­îc l¹i, ch­¬ng tr×nh sÏ më mét hép tho¹i ®Ó so¹n th¶o c¸c th«ng tin cña môc tõ. H×nh 20 thÓ hiÖn hép tho¹i so¹n th¶o c¸c th«ng tin cña mét môc tõ. H×nh 20 - Hép tho¹i so¹n th¶o mét môc tõ. Víi hép tho¹i trªn, chóng ta cã thÓ nhËp c¸c th«ng tin cña mét môc tõ mét c¸ch ®¬n gi¶n. ViÖc nhËp mét th«ng tin cña ng«n ng÷ liªn quan ®Õn môc tõ ®­îc thùc hiÖn b»ng c¸ch kÝch chuét vµo mét dßng v¨n b¶n nµo ®ã (trõ dßng v¨n b¶n tõ vùng mµ chóng ta muèn thªm vµo, ë h×nh trªn lµ Cuong_English), ch­¬ng tr×nh sÏ hiÓn thÞ mét hép tho¹i (H×nh 21) gióp chóng ta nhËp c¸c th«ng tin liªn quan ®Õn môc tõ cÇn thªm vµo. H×nh 21 - Mét hép tho¹i nhá xuÊt hiÖn gióp nhËp th«ng tin cña môc tõ. Nh­ vËy, víi hép tho¹i trªn, chóng ta lÇn l­ît kÝch chuét ë c¸c dßng v¨n b¶n t­¬ng øng ®Ó thªm néi dung vµo. NÕu chóng ta bá qua mét dßng v¨n b¶n nµo ®ã th× th«ng tin cña nã sÏ ®­îc ngÇm ®Þnh nh­ trong h×nh. Ngoµi ra, khi chóng ta chän nót lÖnh ë hép tho¹i chÝnh cña giao diÖn (H×nh 15) th× qu¸ tr×nh còng diÔn ra nh­ qu¸ tr×nh thªm vµo mét môc tõ. Tøc lµ, ch­¬ng tr×nh sÏ lÇn l­ît hiÓn thÞ c¸c hép tho¹i ë H×nh 20, H×nh 21 ®Ó chóng ta söa c¸c th«ng tin cÇn thiÕt trong môc tõ. Mét hép tho¹i kh¸c mµ hÇu nh­ c¸c øng dông trªn Microsoft Windows ®Òu cã ®Ó gióp ng­êi sö dông biÕt thªm vÒ c¸c th«ng tin liªn quan ®Õn ch­¬ng tr×nh nh­ : phiªn b¶n, t¸c gi¶, b¶n quyÒn,... ®ã lµ hép tho¹i About. H×nh 22 tr×nh bµy hép tho¹i About cña ch­¬ng tr×nh tõ ®iÓn FEV. H×nh 22 - Hép tho¹i About. Cuèi cïng, mét phÇn cña giao diÖn ®­îc ®Ò cËp ë ®©y lµ phÇn trî gióp cña ch­¬ng tr×nh tõ ®iÓn FEV. Ch­¬ng t×nh tõ ®iÓn FEV cã mét tËp tin trî gióp riªng b»ng tiÕng ViÖt, sö dông trªn m«i tr­êng Windows. TËp tin trî gióp nµy cã tªn FEVDHELP.HLP vµ ®­îc hiÓn thÞ bëi Microsoft Windows Help (Winhelp.exe) nh­ H×nh 23. H×nh 23 - TËp tin trî gióp FEVDHELP.HLP ®­îc hiÓn thÞ bëi Winhelp.exe. PhÇn 3 KÕt luËn vµ H­íng ph¸t triÓn I. KÕt qu¶ ®¹t ®­îc 49 II. H­íng ph¸t triÓn cña øng dông trong t­¬ng lai 50 1. Më réng tõ ®iÓn FEV 50 2. T¨ng c­êng kh¶ n¨ng tra nghÜa cña tõ b»ng nhiÒu ph­¬ng ph¸p 50 3. ThiÕt kÕ giao diÖn víi nhiÒu ng«n ng÷ kh¸c nhau 51 4. T¨ng c­êng tÝnh n¨ng ®éng cña giao diÖn 51 5. Tham sè ho¸ ch­¬ng tr×nh 51 KÕt qu¶ ®¹t ®­îc Sau thêi gian t×m hiÓu, ph©n tÝch vµ thiÕt kÕ giao diÖn khai th¸c tõ ®iÓn tra nghÜa Ph¸p - Anh - ViÖt, t«i ®· hoµn thµnh mét sè yªu cÇu c¬ b¶n cña mét cuèn tõ ®iÓn ®iÖn tö sö dông trªn m¸y tÝnh. Ch­¬ng tr×nh nµy ®­îc ch¹y trªn m«i tr­êng Microsoft Windows 9x. Víi ch­¬ng tr×nh nµy, cã thÓ gióp cho ng­êi sö dông thùc hiÖn c¸c c«ng viÖc sau : §äc c¬ së d÷ liÖu tõ vùng tõ tËp tin RTF vµ ®­a vµo mét d¹ng c¬ së d÷ liÖu kh¸c (cô thÓ lµ tËp tin c¬ së d÷ liÖu MDB) ®Ó dÔ dµng truy xuÊt vµ øng dông tËp tin c¬ së d÷ liÖu MDB cho ch­¬ng tr×nh tõ ®iÓn FEV. Cã kh¶ n¨ng øng dông tèt ch­¬ng tr×nh chuyÓn m· tiÕng ViÖt ®a n¨ng ®­îc x©y dùng bëi [17]. Cho phÐp tra nghÜa cña tõ theo 6 cÆp ng«n ng÷ nguån vµ ®Ých kh¸c nhau : Ph¸p - Anh, Ph¸p - ViÖt, Anh - Ph¸p, Anh - ViÖt, ViÖt - Ph¸p, ViÖt - Anh. Cã thÓ quay vÒ c¸c tõ ®· tra. LiÖt kª danh s¸ch c¸c tõ ®· tra. Thªm mét mét tõ vµ c¬ së d÷ liÖu tõ vùng (MDB) cña tõ ®iÓn. Xo¸ mét môc tõ ra khái c¬ së d÷ liÖu tõ vùng cña tõ ®iÓn. In phÇn gi¶i thÝch cña tõ ®ang xem. Ngoµi ra ch­¬ng tr×nh cã thÓ ®­îc cµi ®Æt mét c¸ch tù ®éng vµo m¸y tÝnh b»ng mét tr×nh cµi ®Æt riªng vµ cã phÇn h­íng dÉn sö dông b»ng tiÕng ViÖt trªn m«i tr­êng Windows theo chuÈn Microsoft Help gióp cho ng­êi sö dông cã thÓ lµm quen víi øng dông nµy. MÆc dï vËy, ch­¬ng tr×nh vÉn cßn mét sè h¹n chÕ sau : Giao diÖn hoµn toµn b»ng tiÕng Anh, do ®ã ng­êi kh«ng biÕt tiÕng Anh khã sö dông. §Ó gâ ®­îc tiÕng ViÖt vµ tiÕng Ph¸p th× cÇn ph¶i ch¹y c¸c øng dông hç trî kh¸c (VÝ dô: VietKey, VietWare, ABC,...). Ch­a gi¶i quyÕt ®­îc kh¶ n¨ng tra tõ trªn c¸c øng dông Windows kh¸c mµ ph¶i gâ trùc tiÕp vµo « nhËp tõ hay chän lùa tõ danh s¸ch (VÝ dô: mét sè tõ ®iÓn cho phÐp tra tõ trªn c¸c m«i tr­êng so¹n th¶o v¨n b¶n b»ng c¸ch nhÊp chuét vµo tõ ®ã). Ch­a hç trî ®­îc kh¶ n¨ng tra chÐo (VÝ dô: khi kÝch chuét vµo mét tõ ë phÇn gi¶i thÝch nghÜa th× ch­¬ng tr×nh sÏ t×m phÇn nghÜa t­¬ng øng cña tõ ®ã trong tõ ®iÓn víi ng«n ng÷ ®Ých). Do ch­¬ng tr×nh sö dông c¬ së d÷ liÖu d¹ng tËp tin MDB nªn chiÕm nhiÒu kh«ng gian nhí trªn ®Üa. Do sö dông c¬ së d÷ liÖu tõ vùng RTF cã s½n nªn phÇn nghÜa, c¸c vÝ dô cßn h¹n chÕ vµ ch­a cã c¸c phÇn phiªn ©m t­¬ng øng cña tiÕng Anh vµ tiÕng ViÖt. Tuy vËy, nÕu ®­îc ®Çu t­ vµ ph¸t triÓn thªm th× kh¶ n¨ng øng dông cña ch­¬ng trong thùc tÕ lµ cã thÓ. Nh­ vËy, ®Ó ch­¬ng tr×nh cã thÓ ®­îc øng dông réng r·i trong thùc tÕ, cÇn ph¶i bæ sung mét sè tån t¹i vµ thiÕu sãt sau : Thªm vµo kh¶ n¨ng gâ tiÕng ViÖt vµ tiÕng Ph¸p ®Ó ch­¬ng tr×nh cã thÓ ch¹y ®éc lËp trªn nhiÒu m¸y kh¸c nhau mµ kh«ng cÇn c¸c bé gâ kÌm theo. T¹o ra giao diÖn víi nhiÒu ng«n ng÷ giao tiÕp kh¸c nhau (tèi thiÓu lµ c¸c ng«n ng÷ cã trong tõ ®iÓn). Bæ sung ®Çy ®ñ phÇn nghÜa, phiªn ©m vµ c¸c vÝ dô vµo c¬ së d÷ liÖu tõ vùng. ViÕt c¸c hµm riªng ®Ó viÖc thao t¸c trùc tiÕp trªn tËp tin RTF ®­îc nhanh h¬n. Ngoµi ra cßn cã nhiÒu yÕu tè kh¸c cÇn ph¶i ®­îc bæ sung trong c¸c qu¸ tr×nh n©ng cÊp vµ b¶o tr× øng dông. H­íng ph¸t triÓn cña øng dông trong t­¬ng lai Cuèi cïng, vÊn ®Ò ®­îc ®Ò cËp ë ®©y lµ kh¶ n¨ng vµ h­íng ph¸t triÓn cña ®å ¸n trong t­¬ng lai. Chóng ta biÕt r»ng, mét øng dông trªn m¸y tÝnh chØ mang tÝnh kh¶ thi vµ cã thÓ b¸n ®­îc trªn thÞ tr­êng khi vµ chØ khi héi ®ñ c¸c ®iÒu kiÖn vÒ tÝnh ®óng ®¾n cña ch­¬ng tr×nh; lîi Ých mµ øng dông mang l¹i cho ng­êi sö dông; kh¶ n¨ng n©ng cÊp cña øng dông sau nµy;... vµ c¶ c¸c ®iÒu kiÖn vÒ mÆt v¨n ho¸, tÝnh ph¸p lý,... ë ®©y, nÕu xÐt vÒ chu kú sèng cña mét s¶n phÈm th× chóng ta l¹i cµng kh«ng thÓ bá qua c¸c giai ®o¹n n©ng cÊp, b¶o tr× ®Ó bæ sung c¸c thµnh phÇn míi, lóc ®ã míi cã thÓ c¹nh tranh víi c¸c s¶n phÈm t­¬ng ®­¬ng. V× vËy, viªc ®Þnh h­íng ph¸t triÓn cho mét øng dông trong t­¬ng lai lµ vÊn ®Ò kh«ng thÓ kh«ng ®­îc xem xÐt. D­íi ®©y t«i sÏ tr×nh bµy c¸c kh¶ n¨ng ph¸t triÓn cña øng dông : Më réng tõ ®iÓn FEV Nh­ ®· ®Ò cËp ë phÇn giíi thiÖu vµ phÇn ®Æt vÊn ®Ò, tõ ®iÓn FEV ®­îc x©y dùng víi c¬ së d÷ liÖu tõ vùng lµ c¸c tËp tin RTF cã chøa phÇn nghÜa Ph¸p, Anh, Th¸i Lan, Malai vµ phÇn nghÜa tiÕng ViÖt ®­îc thªm vµo. Do ®ã tr­íc m¾t cã thÓ më réng tõ ®iÓn ®a ng÷ FEV thµnh FEMTV vµ nh­ vËy chóng ta cã thÓ cã ®­îc 20 kh¶ n¨ng tra tõ kh¸c nhau (H×nh 9). Trong t­¬ng lai, dù ¸n cña GETA sÏ më réng víi nhiÒu ng«n ng÷ ë ch©u ¸ kh¸c (nh­ : Lµo, Campuchia, Trung Quèc,...). Nh­ vËy, ch­¬ng tr×nh FEV sÏ ph¶i ®­îc söa ®æi ®Ó cã thÓ bæ sung nhiÒu ng«n ng÷ kh¸c nhau nh»m ®¸p øng nhu cÇu cña ng­êi dïng tõ ®iÓn ®a ng÷. Mét ®iÒu quan träng cuèi cïng ®Ó cã thÓ gióp cho c¸c ng­êi n­íc ngoµi ph¸t ©m ®­îc c¸c ng«n ng÷ ch©u ¸ lµ bæ sung thªm phÇn phiªn ©m. §©y cã thÓ lµ vÊn ®Ò khã kh¨n ®èi víi mét sè ng«n ng÷ nh­ng kh«ng cã nghÜa lµ kh«ng thÓ thùc hiÖn ®­îc. T¨ng c­êng kh¶ n¨ng tra nghÜa cña tõ b»ng nhiÒu ph­¬ng ph¸p Cã rÊt nhiÒu tõ ®iÓn trªn m¸y tÝnh (vÝ dô : Click’n’See, AutoLook cña L¹c ViÖt,...) ®­îc ng­êi dïng rÊt thÝch thó, ®iÒu ®ã kh«ng ph¶i v× phÇn nghÜa phong phó mµ mét phÇn do kh¶ n¨ng tra tõ rÊt linh ®éng (chØ cÇn kÝch chuét vµo tõ xuÊt hiÖn trªn mµn h×nh m¸y tÝnh mµ cã trong c¬ së d÷ liÖu tõ vùng lµ cã thÓ xem nghÜa ngay). V× thÕ ®Ó h­íng ng­êi dïng ®Õn tõ ®iÓn ®a ng÷ FEV cÇn ph¶i thªm vµo c¸c tÝnh n¨ng tra tõ t­¬ng tù nh­ c¸c lo¹i tõ ®iÓn trªn. Ngoµi ra, cã thÓ bæ sung thªm c¸c kh¶ n¨ng hç trî viÖc kiÓm tra lçi chÝnh t¶ ®Ó øng dông trªn c¸c m«i tr­êng so¹n th¶o v¨n b¶n. ThiÕt kÕ giao diÖn víi nhiÒu ng«n ng÷ kh¸c nhau §©y lµ yªu cÇu thËt sù cÇn thiÕt ®èi víi mäi øng dông muèn ph©n phèi réng r·i. Bëi v× r»ng, kh«ng ph¶i ai còng cã thÓ biÕt tiÕng Anh (hay mét ng«n ng÷ phæ dông nµo ®ã), mÆt kh¸c khi sö dông giao diÖn quèc ng÷ sÏ lµm cho ng­êi sö dông thÝch thó h¬n. Do ®ã, viÖc bæ sung kh¶ n¨ng chän lùa ng«n ng÷ lµm giao diÖn lµ ®iÒu cÇn thiÕt vµ lµm cho ng­êi dïng c¶m thÊy an t©m h¬n khi xö lý c¸c th«ng b¸o quèc ng÷. T¨ng c­êng tÝnh n¨ng ®éng cña giao diÖn TÝnh n¨ng ®éng cña ch­¬ng tr×nh lµ kh¶ n¨ng tù ®iÒu chØnh, tù thªm hay bít mét sè thµnh phÇn nµo ®ã. Nh­ vËy, ®èi víi tõ ®iÓn ®a ng÷ th× ®iÒu nµy chÝnh lµ thay ®æi giao diÖn sao cho ng­êi dïng cã thÓ tù chän mét sè c¸ch thÓ hiÖn nµo ®ã cña giao diÖn. Nãi mét c¸ch cô thÓ th× ®©y lµ kh¶ n¨ng mµ ng­êi dïng cã thÓ chän ®Ó thay ®æi sè l­îng c¸c cöa sæ tr×nh bµy phÇn gi¶i thÝch nghÜa cña nhiÒu ng«n ng÷ kh¸c nhau (nh­ng sè l­îng cã thÓ ®­îc h¹n chÕ v× kh«ng thÓ tr×nh bµy qu¸ nhiÒu cöa sæ trªn mµn h×nh b×nh th­êng). Tham sè ho¸ ch­¬ng tr×nh §©y lµ kh¶ n¨ng cao cÊp ®­îc m« pháng dùa trªn mét sè c«ng cô cña Windows. Tøc lµ, trªn c¬ së tõ ®iÓn FEV, chóng ta t¹o ra c¸c líp (Class), ®èi t­îng (Object) vµ c«ng cô cho phÐp ng­êi sö dông gäi c¸c hµm gièng nh­ c¸c hµm API(1) API: Application Program Interface. Giao diÖn ch­¬ng tr×nh øng dông. trong Windows hoÆc trong c¸c th­ viÖn ®éng DLL(2) DLL: Dynamic Link Library. Th­ viÖn liªn kÕt ®éng dïng trong Windows. . Nh­ vËy, c¸c hµm nµy sÏ ®­îc truyÒn mét vµi tham sè theo mét c¸ch thøc nµo ®ã vµ ch­¬ng tr×nh sÏ t¹o ra c¸c giao diÖn theo mong muèn cña ng­êi sö dông. Mét c¸c h×nh thøc, chóng ta cã thÓ hiÓu c¸c b­íc t¹o giao diÖn ®­îc diÔn ra nh­ sau : §Çu tiªn, chóng ta tËp hîp c¬ së d÷ liÖu tõ vùng d­íi d¹ng c¸c tËp tin RTF. Khai b¸o tËp hîp c¸c tham sè theo mét c¸ch nµo ®ã vµ l­u trong mét tËp tin cÊu h×nh (t­¬ng tù nh­ c¸c tËp tin *.INI trong Windows). Gäi ch­¬ng tr×nh tõ ®iÓn ®­îc thiÕt kÕ tham sè ho¸ víi tËp tin cÊu h×nh võa t¹o cïng víi c¸c tËp tin c¬ së d÷ liÖu tõ vùng. Cuèi cïng, ch­¬ng tr×nh tõ ®iÓn ®­îc thiÕt kÕ tham sè ho¸ sÏ t¹o ra ®­îc mét giao diÖn theo c¸c yªu cÇu ®­îc ®Æt trong tËp tin cÊu h×nh. Nh­ vËy chóng ta cã thÓ minh ho¹ qu¸ tr×nh t¹o giao diÖn b»ng h×nh vÏ sau : INI TËp tin cÊu h×nh RTF Ch­¬ng tr×nh t¹o giao diÖn ®­îc tham sè ho¸ Giao diÖn víi ng­êi sö dông H×nh 24 - Qu¸ tr×nh t¹o giao diÖn tõ ®iÓn nhê ch­¬ng tr×nh ®­îc tham sè ho¸. Phô lôc C¸c tõ viÕt t¾t CLIPS Communication LangagiÌre et Interaction Personne SystÌme (HÖ thèng giao tiÕp vµ trao ®æi ng«n ng÷ ng­êi - ng­êi). CSDL C¬ Së D÷ LiÖu. FEL French - English - Laotian FEM French - English - Malaysia. FET French - English - Thai FEV French - English - Vietnamese GETA Groupe d'Ðtude pour la Traduction Automatique (Nhãm nghiªn cøu dÞch tù ®éng gåm 25 thµnh viªn). IMAG Informatique et MathÐmatiques AppliquÐes de Grenoble (Tin häc vµ to¸n øng dông cña Grenoble). UJF UniversitÐ Joseph Fourier (§¹i häc Joseph Fourier). c¸c ThuËt ng÷ tin häc API Application Program Interface. Giao diÖn ch­¬ng tr×nh øng dông. Th«ng th­êng, phÇn mÒm hÖ thèng cung cÊp ®Çy ®ñ c¸c chøc n¨ng vµ c¸c tµi nguyªn mµ c¸c lËp tr×nh viªn cã thÓ rót ra tõ ®ã ®Ó t¹o nªn c¸c tÝnh n¨ng giao tiÕp ng­êi - m¸y, nh­ tr×nh ®¬n kÐo xuèng, tªn lÖnh, hép héi tho¹i, lÖnh bµn phÝm, vµ c¸c cöa sæ. Trong hÖ thèng m¹ng, mét API sÏ qui ®Þnh c¸ch mµ c¸c ch­¬ng tr×nh sÏ dïng c¸c tÝnh n¨ng m¹ng kh¸c nhau. Giao diÖn ch­¬ng tr×nh øng dông gióp Ých rÊt nhiÒu cho ng­êi sö dông v× nã cho phÐp tiÕt kiÖm ®­îc thêi gian t×m hiÓu c¸c ch­¬ng tr×nh míi, do ®ã khÝch lÖ mäi ng­êi dïng nhiÒu ch­¬ng tr×nh h¬n. BOF Begin Of File. §Çu tËp tin. ThuËt ng÷ nµy ®­îc dïng kh¸ phæ biÕn trong c¸c ng«n ng÷ lËp tr×nh nh­ lµ mét hµm, th«ng th­êng nã tr¶ vÒ gi¸ trÞ kiÓu boolean. CD-ROM Compact Disk - Read Only Memory. Bé nhí chØ ®äc ra dïng ®Üa compact, ®©y lµ mét c«ng nghÖ l­u tr÷ quang häc chØ cã thÓ ®äc ra vµ dïng c¸c ®Üa compact. CD-ROM cã thÓ l­u tr÷ ®Õn 650M d÷ liÖu, tÊt c¶ d÷ liÖu ®ã ®Òu phï hîp trong ho¹t ®éng t­¬ng t¸c víi mµn h×nh m¸y tÝnh. Víi c¸c kü thuËt nÐn d÷ liÖu míi, b¹n cã thÓ xÕp ®­îc ®Õn 250.000 trang v¨n b¶n trong mét ®Üa CD-ROM. §Çu tiªn CD-ROM ®­îc dïng cho c¸c bé kiÕn thøc b¸ch khoa tù ®iÓn, vµ c¸c th­ viÖn phÇn mÒm. HiÖn nay, CD-ROM cßn ®­îc dïng trong c¸c thiÕt bÞ ®a ph­¬ng tiÖn, c¸c trß ch¬i, c¸c th­ viÖn ph«ng ch÷, vµ h×nh nghÖ thuËt c¾t rêi dïng trong Ên lo¸t v¨n phßng vµ dïng cho viÖc ph©n phèi c¸c phÇn mÒm ch­¬ng tr×nh. ViÖc cµi ®Æt c¸c phÇn mÒm ch­¬ng tr×nh lÊy tõ CD-ROM sÏ tr¸nh ®­îc qu¸ tr×nh th¸o l¾p 10 ®Õn 20 ®Üa mÒm kÐo dµi. DLL Dynamic Link Library. Th­ viÖn liªn kÕt ®éng. C¸c ng«n ng÷ lËp tr×nh hiÖn ®¹i trong m«i tr­êng Windows ®iÒu cho phÐp t¹o ra c¸c DLL ®Ó dïng chung bëi nhiÒu øng dông kh¸c nhau. EOF End Of File. Cuèi tËp tin. ThuËt ng÷ nµy ®­îc dïng kh¸ phæ biÕn trong c¸c ng«n ng÷ lËp tr×nh nh­ lµ mét hµm, th«ng th­êng nã tr¶ vÒ gi¸ trÞ kiÓu boolean. LISP List Processing. Mét ng«n ng÷ lËp tr×nh bËc cao th­êng ®­îc dïng cho viÖc nghiªn cøu trÝ tuÖ nh©n t¹o, nã lµm cho kh«ng cã sù kh¸c nhau gi÷a ch­¬ng tr×nh ®ã vµ d÷ liÖu. Ng«n ng÷ nµy ®­îc xem lµ lý t­ëng ®èi víi viÖc xö lý c¸c dßng v¨n b¶n. LISP lµ mét ng«n ng÷ khai b¸o; lËp tr×nh viªn chØ cÇn so¹n c¸c danh s¸ch biÓu thÞ c¸c mèi quan hÖ gi÷a c¸c gi¸ trÞ ký hiÖu. C¸c b¶n danh s¸ch lµ cÊu tróc d÷ liÖu c¬ b¶n cña LISP, vµ ch­¬ng tr×nh sÏ tiÕn hµnh c¸c phÐp ®iÖn to¸n b»ng c¸c gi¸ trÞ ký hiÖu ®­îc diÔn ®¹t trong c¸c b¶n danh s¸ch ®ã. Ngoµi ra, LISP ®· ®­îc dïng ®Ó viÕt EMACS - mét ch­¬ng tr×nh biªn tËp v¨n b¶n cho m¸y tÝnh lín, cã ¶nh h­ëng nhiÒu ®Õn viÖc thiÕt kÕ vµ thùc hiÖn c¸c gãi ch­¬ng tr×nh xö ý tõ nh­ WordPerfect vµ Sprint. Tuy nhiªn, còng gièng nh­ c¸c ng«n ng÷ lËp tr×nh thuéc lÜnh vùc c«ng céng kh¸c. LISP còng xuÊt hiÖn trong mét sè c¸c phiªn b¶n kh«ng thÓ hiÓu lÉn nhau. Mét sè phiªn b¶n ®­îc tiªu chuÈn ho¸, cÊu h×nh ®Çy ®ñ, vµ ®­îc chÊp nhËn réng r·i hiÖn nay lµ Common LISP. MDB Microsoft Database Access. TËp tin c¬ së d÷ liÖu chuÈn cña Microsoft, tËp tin nµy ®­îc sö dông réng r·i trong c¸c øng dông qu¶n lý c¬ së d÷ liÖu trªn m«i tr­êng Microsoft Access. OLE Object Linking and Embedding. Nhóng vµ liªn kÕt ®èi t­îng. ThuËt ng÷ nµy ®­îc Microsoft ®­a ra nh»m x©y dùng c¸c kh¶ n¨ng nhóng vµ liªn kÕt ®èi t­îng trong c¸c øng dông kh¸c nhau. Chóng ta cã thÓ tham kh¶o nhiÒu h¬n vÒ ®iÒu nµy ë [13], [14], [15], [16]. Plain Text 3D V¨n b¶n ph¼ng 3 chiÒu. §©y lµ mét d¹ng v¨n b¶n kh«ng chøa g× kh¸c ngoµi c¸c ký tù sè, ch÷ vµ dÊu, theo chuÈn ASCII. VÝ dô : Trong nhiÒu øng dông, b¹n cã thÓ cÊt gi÷ l¹i v¨n b¶n gèc theo hai c¸ch: cã gâ hoÆc kh«ng gâ phÝm Enter ë cuèi mçi dßng. NÕu b¹n ®Þnh dïng v¨n b¶n nµy cho mét ch­¬ng tr×nh xö lý tõ kh¸c, th× h·y chän c¸ch cÊt gi÷ kh«ng gâ Enter; sau khi ®· ®äc tµi liÖu nµy, c¸c ch­¬ng tr×nh sÏ s¾p xÕp vµ ®Þnh d¹ng l¹i mét c¸ch tù ®éng. B¹n chØ chän c¸ch cã gâ phÝm Enter khi cÇn ph¶i cÊt gi÷ v¨n b¶n gèc ®èi víi tr×nh øng dông, nh­ n¹p lªn mét tÖp th«ng qua ®­êng liªn kÕt viÔn th«ng ch¼ng h¹n. RTF Rich Text Format. Mét tiªu chuÈn ®Þnh khu«n thøc v¨n b¶n do h·ng Microsoft x©y dùng, cho phÐp ch­¬ng tr×nh xö lý tõ cã thÓ t¹o ra mét tÖp ®­îc m· ho¸ víi tÊt c¶ c¸c lÖnh ®Þnh khu«n thøc cña tµi liÖu ®ã, kh«ng dïng bÊt kú m· ®Æc biÖt nµo. Tµi liÖu m· ho¸ b»ng RTF cã thÓ ®­îc truyÒn qua c¸c tuyÕn viÔn th«ng hoÆc ®­îc ®äc b»ng ch­¬ng tr×nh xö lý t­¬ng thÝch RTF mµ kh«ng bÞ mÊt th«ng tin. MODULe ch­¬ng tr×nh "DBTOOLS.BAS" minh häa c¸c hµm xö lý tËp tin c¬ së d÷ liÖu tõ vùng rtf vµ mdb. Attribute VB_Name = "DBTools" Option Explicit Public FEV_Database As String Dim BeginBlock As Long Sub DBExistFunction() FEV_Database = frm_Import.txt_mdbFileName.Text End Sub Sub DBAppendFunction() Dim rtbox_Source As RichTextBox Dim rtbox_Buffer As RichTextBox Dim DBFileName As String DBFileName = frm_Import.txt_mdbFileName.Text Set rtbox_Source = frm_Import.rtbox_Source Set rtbox_Buffer = frm_Import.rtbox_Buffer rtbox_Source.FileName = frm_Import.txt_rtfFileName.Text CreateTableDefX rtbox_Source, rtbox_Buffer, DBFileName, _ "FEV_equ", False FEV_Database = frm_Import.txt_mdbFileName.Text End Sub Function DBCreatNewFunction() As Boolean Dim rtbox_Source As RichTextBox Dim rtbox_Buffer As RichTextBox Dim DBFileName As String DBFileName = frm_Import.txt_mdbFileName.Text Set rtbox_Source = frm_Import.rtbox_Source Set rtbox_Buffer = frm_Import.rtbox_Buffer rtbox_Source.FileName = frm_Import.txt_rtfFileName.Text If FEV_Database = DBFileName Then MsgBox DBFileName + " is being in use. Please select another.", _ vbInformation DBCreatNewFunction = False Exit Function End If If CreateDatabaseX(DBFileName) Then CreateTableDefX rtbox_Source, rtbox_Buffer, DBFileName, _ "FEV_equ", True FEV_Database = frm_Import.txt_mdbFileName.Text DBCreatNewFunction = True End If End Function Function CreateDatabaseX(DBName As String) As Boolean Dim wrkDefault As Workspace Dim dbsFEVD As Database ' Get default Workspace. Set wrkDefault = DBEngine.Workspaces(0) ' Make sure there isn't already a file with the name of ' the new database. If Dir(DBName) "" Then If MsgBox(DBName + " database already exist. _ Are you want to replace it?", _ vbQuestion + vbYesNo, _ "FEVD message") = vbYes Then Kill (DBName) Else CreateDatabaseX = False Goto EndExitFunction End If End If CreateDatabaseX = True Set dbsFEVD = wrkDefault.CreateDatabase(DBName, dbLangGeneral, _ dbEncrypt) dbsFEVD.Close EndExitFunction: wrkDefault.Close End Function Sub CreateTableDefX(rtfSource As RichTextBox, rtfBuffer As RichTextBox, _ DBSourceName As String, TableName As String, CreateNew As Boolean) Dim tdfNew As TableDef Dim Index As Integer Dim MsgResult As VbMsgBoxResult Dim ExistTable As Boolean Dim rstFEV_equ As Recordset Dim IsEmpty As Boolean Dim dbsFEVD As Database Set dbsFEVD = OpenDatabase(DBSourceName) If CreateNew Then ' Create a new TableDef object. Set tdfNew = dbsFEVD.CreateTableDef(TableName) With tdfNew ' Create French fields .Fields.Append .CreateField("entry", dbText, 100) .Fields.Append .CreateField("french_pron", dbText, 100) .Fields.Append .CreateField("french_cat", dbText, 100) .Fields.Append .CreateField("french_sentence", dbText, 500) ' Create English fields .Fields.Append .CreateField("english_equ", dbText, 100) .Fields.Append .CreateField("english_sentence", dbText, 500) ' Create Vietnamese fields .Fields.Append .CreateField("viet_equ", dbText, 100) .Fields.Append .CreateField("viet_equ_pron", dbText, 100) .Fields.Append .CreateField("viet_sentence", dbText, 500) ' Append the new TableDef object to the Northwind ' database. dbsFEVD.TableDefs.Append tdfNew End With Else Set tdfNew = dbsFEVD.TableDefs(TableName) End If Set rstFEV_equ = dbsFEVD.OpenRecordset(TableName, dbOpenDynaset) frm_Main.ProgressBar.Max = Len(rtfSource.Text) frm_Main.ProgressBar.Visible = True frm_Main.StatusBar.Panels.Item(1).Visible = True frm_Main.MousePointer = 11 Do frm_Main.ProgressBar.Value = BeginBlock rtfBuffer = ReadBlock(BeginBlock, rtfSource, rtfBuffer, IsEmpty) AppendBlockToFEVD_DB rtfBuffer, rstFEV_equ Loop Until IsEmpty If IsEmpty Then BeginBlock = 0 frm_Main.ProgressBar.Visible = False frm_Main.StatusBar.Panels.Item(1).Visible = False frm_Main.StatusBar.Panels.Item(2).Text = "Successful." frm_Main.MousePointer = 0 rstFEV_equ.Close dbsFEVD.Close End Sub Public Function ReadBlock(BeginPos As Long, rtfSource As RichTextBox, _ rtfBuffer As RichTextBox, EmptySource As Boolean) As RichTextBox Dim EndPos As Long Dim MaxLength As Long Dim End_flags As Boolean EmptySource = False Set ReadBlock = rtfBuffer On Error Goto EndReadFunction MaxLength = Len(rtfSource.Text) EndPos = InStr(BeginPos + 1, rtfSource.Text, Chr$(13), vbTextCompare) Do While (EndPos <= MaxLength) EndPos = EndPos + 1 rtfSource.SelStart = EndPos If rtfSource.SelIndent = 0 And rtfSource.SelUnderline = False Then rtfSource.SelStart = BeginPos rtfSource.SelLength = EndPos - BeginPos - 1 ReadBlock.TextRTF = rtfSource.SelRTF BeginBlock = EndPos Exit Function ElseIf EndPos = MaxLength Then rtfSource.SelStart = BeginPos rtfSource.SelLength = EndPos - BeginPos ReadBlock.TextRTF = rtfSource.SelRTF BeginBlock = EndPos EmptySource = True Exit Function End If Loop EndReadFunction: EmptySource = True End Function Public Sub AppendBlockToFEVD_DB(rtfBlock As RichTextBox, _ rstFEV_equ As Recordset) On Error Goto AppendDatabase Dim str_entry As String Dim str_french_pron As String Dim str_french_cat As String Dim str_french_sentence As String Dim str_english_equ As String Dim str_english_sentence As String Dim str_viet_equ As String Dim str_viet_equ_pron As String Dim str_viet_sentence As String Dim BeginPos As Long Dim EndPos As Long Dim Last_line As Integer Dim LinePos As Integer Dim MaxLength As Long Dim StringLength As Long BeginPos = 0 EndPos = 1 MaxLength = Len(rtfBlock.Text) EndPos = InStr(1, rtfBlock.Text, Chr$(13), vbTextCompare) Last_line = rtfBlock.GetLineFromChar(MaxLength) With rtfBlock Do While EndPos <= MaxLength StringLength = EndPos - BeginPos .SelStart = BeginPos If StringLength > 0 Then .SelLength = StringLength Select Case .SelFontName Case Is = "Times" Select Case .SelFontSize Case Is = 14 If .SelIndent = 0 And .SelUnderline = False Then str_entry = .SelText End If Case Is = 12 If Int(.SelIndent) = 840 Then str_french_cat = .SelText ElseIf .SelBold = True And Int(.SelIndent) = 1980 Then str_english_equ = .SelText ElseIf .SelBold = False And _ Int(.SelIndent) = 1980 Then str_english_sentence = .SelText ElseIf .SelBold = False And _ Int(.SelIndent) = 854 And .SelItalic Then str_french_sentence = .SelText End If End Select Case Is = "Courier" If .SelFontSize = 12 And Int(.SelIndent) = 854 Then str_french_pron = .SelText End If Case Is = ".VnTime" If .SelFontSize = 12 And .SelBold = True Then str_viet_equ = .SelText Else str_viet_equ_pron = .SelText End If Case Is = ".VnCourier New" If .SelFontSize = 10 And Int(.SelIndent) = 2264 Then str_viet_sentence = .SelText End If Case Else End Select Else Goto AppendDatabase End If BeginPos = EndPos + 1 EndPos = InStr(BeginPos, rtfBlock.Text, Chr$(13), vbTextCompare) Loop End With AppendDatabase: With rstFEV_equ .AddNew If str_entry "" Then !entry = str_entry End If If str_french_pron "" Then !french_pron = str_french_pron End If If str_french_cat "" Then !french_cat = str_french_cat End If If str_french_sentence "" Then !french_sentence = str_french_sentence End If If str_english_equ "" Then !english_equ = str_english_equ End If If str_english_sentence "" Then !english_sentence = str_english_sentence End If If str_viet_equ "" Then !viet_equ = str_viet_equ End If If str_viet_equ_pron "" Then !viet_equ_pron = str_viet_equ_pron End If If str_viet_sentence "" Then !viet_sentence = str_viet_sentence End If .Update End With End Sub Public Sub EditEntry(rstFEV_equ As Recordset) Dim str_entry As String Dim str_french_pron As String Dim str_french_cat As String Dim str_french_sentence As String Dim str_english_equ As String Dim str_english_sentence As String Dim str_viet_equ As String Dim str_viet_equ_pron As String Dim str_viet_sentence As String With rstFEV_equ .Edit If str_entry "" Then !entry = str_entry End If If str_french_pron "" Then !french_pron = str_french_pron End If If str_french_cat "" Then !french_cat = str_french_cat End If If str_french_sentence "" Then !french_sentence = str_french_sentence End If If str_english_equ "" Then !english_equ = str_english_equ End If If str_english_sentence "" Then !english_sentence = str_english_sentence End If If str_viet_equ "" Then !viet_equ = str_viet_equ End If If str_viet_equ_pron "" Then !viet_equ_pron = str_viet_equ_pron End If If str_viet_sentence "" Then !viet_sentence = str_viet_sentence End If .Update End With End Sub Tµi liÖu tham kh¶o CHRISTIAN BOITET & LAURENT FISCHER - PROJET "FEV" (RÐalisation d'un dictionnaire d'usage et d'une base terminologiquie par acceptions informatique informatisÐs Français - Vietnamien via l'Anglais) - 1998. STEPHEN R. SCHACH, ROGER S. pressman - Analyzing and Designing System (Chapter 11 : Analyzing and Designing System Interface, Pages : 409-435) - 1998. ROGER S. pressman - Software Engineering (Chapter 14 : Design Methods, Pages : 393 - 406) - 1998. Kenneth H. ROSEN - To¸n häc rêi r¹c øng dông trong tin häc - Nhµ xuÊt b¶n Khoa häc vµ Kü thuËt - 1997. Phan huy kh¸nh - LuËn ¸n TiÕn Sü Tin häc: "§ãng gãp cho øng dông tin häc trªn nhiÒu ng«n ng÷. Më réng mét hÖ thèng xö lý v¨n b¶n cã tÝnh cÊu tróc" - 1991. Phan huy kh¸nh - ThiÕt kÕ tõ ®iÓn ph¸t ©m trong m«i tr­êng Microsoft Windows - T¹p chÝ Khoa häc C«ng nghÖ 3 Tr­êng §¹i häc B¸ch khoa - 1999. Phan huy kh¸nh - X©y dùng c«ng cô kiÓm tra chÝnh t¶ tiÕng ViÖt trong m«i tr­êng Microsoft Windows (Trang : 61 - 73) - TuyÓn tËp c«ng tr×nh Khoa häc 10 n¨m - Khoa C«ng nghÖ Th«ng tin, Tr­êng §¹i häc Kü thuËt, §¹i häc §µ N½ng - 1998. Ng« Trung ViÖt - Ph©n tÝch vµ thiÕt kÕ Tin häc hÖ thèng: Qu¶n lý - Kinh doanh - NghiÖp vô (Ch­¬ng 12 : ThiÕt kÕ giao diÖn ng­êi - m¸y, Trang : 389 - 415) - Nhµ xuÊt b¶n Giao th«ng vËn t¶i - 1995. NguyÔn kim th¶n, nguyÔn kim tu - Tõ ®iÓn chuyªn ®Ò Ph¸p - ViÖt - Anh - Nhµ xuÊt b¶n Gi¸o dôc - 1997. minh t©n, thanh nghi, xu©n l·m - Tõ ®iÓn tiÕng ViÖt bá tói - Nhµ xuÊt b¶n Thanh Ho¸ - 1998. CD-ROM - FEM Dictionary (French - English - Malaysia Dictionary) - 1996. Tõ ®iÓn l¹c viÖt - L¹c ViÖt mtdEVA300 - 1999. nguyÔn tiÕn, ®Æng xu©n h­êng, nguyÔn v¨n hoµi, tr­¬ng ngäc v©n - Kü n¨ng lËp tr×nh Visual Basic 5 - Nhµ xuÊt b¶n Gi¸o dôc - 1998. NguyÔn tiÕn - C¸c gi¶i ph¸p cho ng­êi lËp tr×nh chuyªn nghiÖp Visual Basic 4 - Nhµ xuÊt b¶n Gi¸o dôc - 1997. Microsoft VISUAL STUDIO 6.0 - Visual Basic 6.0 & Visual C++ 6.0 Compiler. Microsoft Developer Network - MSDN Library Visual Studio 6.0. Hoµng quèc th¸i - §å ¸n tèt nghiÖp : "X©y dùng bé chuyÓn m· tiÕng ViÖt ®a n¨ng dùa trªn m· trôc" - 2000. Khoa C«ng NghÖ Th«ng Tin - Tr­êng §¹i häc Kü thuËt - §¹i Häc §µ N½ng. department of information - Polytechnic college - university of §N. + §Þa chØ : Ph­êng Hoµ Kh¸nh, QuËn Liªn ChiÓu, Thµnh Phè §µ N½ng ( Phone : (84 511) 841287. Email: cnttdhdn@dng.vnn.vn Hoµng xu©n ®¨ng c­êng - Sinh viªn líp 95T. Khoa c«ng nghÖ th«ng tin - tr­êng ®¹i häc kü thuËt - ®¹i häc ®µ n½ng. + §Þa chØ : 71 TrÇn H­ng §¹o - Thµnh Phè HuÕ. ( Phone : (84 54) 523608 - 523765. E-mail: hxdcuong@yahoo.com

Các file đính kèm theo tài liệu này:

  • docBCTNHXDC.DOC
  • rarCUONG.rar