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
60 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2502 | Lượt tải: 0
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 nhng 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. Nhng, 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. Nhng 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) cha? 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µ lu 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 trng 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 trng 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 cha chi tiÕt ho¸ c¸c thao t¸c thËt sù nhng Ý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. Nhng 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 cha, 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 cha 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,...).
Cha 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õ ®ã).
Cha 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µ cha 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÷ nhng 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 (nhng 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µ lu 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Ö lu tr÷ quang häc chØ cã thÓ ®äc ra vµ dïng c¸c ®Üa compact. CD-ROM cã thÓ lu 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 Hng §¹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:
- BCTNHXDC.DOC
- CUONG.rar