ML Dict (Multilaguage dictonary) là phần mềm từ điển đa ngôn ngữ cho pocket PC chạy trên hệ điều hành windows CE và .Net Compack Framwork.
Phần mềm này được xây dựng theo yêu cầu đồ án của môn Chuyên Đề Công Nghệ Phần Mềm 1 - Lập Trình Hiện Đại do thầy Trần Minh Triết và thầy Bùi Tấn Lộc phụ trách. Trong quá trình thực hiện đồ án này, nhóm đã gặp không ít khó khăn và bỡ ngỡ trong nhiều công đoạn do đây là lần đầu tiên nhóm làm việc với môi trường lập trình trên dot Net CF. Hơn nữa, từ điển là một loại phần mềm làm việc với những file dữ liệu lớn, yêu cầu phải xử lý nhanh. Những yêu cầu này thật sự khắt khe và không hề dễ dàng.
29 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2703 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Chuyên đề Lập trình hiện đại, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 1 | 2 9
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
***00☼00***
CHUYÊN ĐỀ
Thành phố Hồ Chí Minh, ngày 10, tháng 05, năm 2009
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 2 | 2 9
Mục lục
Lời cảm ơn.............................................................................................................................................................5
I. Giới thiệu .......................................................................................................................................................6
1. Tác giả ........................................................................................................................................................6
2. Chương trình ML Dict ...............................................................................................................................6
3. Giới thiệu chức năng...................................................................................................................................7
Chức năng tra từ, phát âm ..................................................................................................................7
Chức năng thêm/bớt từ điển ...............................................................................................................7
Chức năng ghi nhớ từ vừa tra: ............................................................................................................7
Chức năng dịch văn bản .....................................................................................................................7
Chức năng trợ giúp ............................................................................................................................7
Các tùy chọn .....................................................................................................................................8
Lưu cấu hình cho phiên làm việc sau. .................................................................................................8
II. Hướng dẫn sử dụng:.......................................................................................................................................8
1. Sử dụng menus: ..........................................................................................................................................8
1.1. Menu Từ Điển:.............................................................................................................................8
1.2. Menu Tùy Chỉnh ..........................................................................................................................9
1.3. Menu Công Cụ .............................................................................................................................9
1.4. Menu Trợ Giúp ............................................................................................................................9
2. Hướng dẫn tra từ......................................................................................................................................10
3. Tạo các file dữ liệu cho từ điển. ................................................................................................................11
Lưu ý: ...............................................................................................................................................11
4. Cài thêm từ điển .......................................................................................................................................12
5. Gỡ bớt từ điển ..........................................................................................................................................12
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 3 | 2 9
6. Tra từ online.............................................................................................................................................13
7. Trợ giúp ...................................................................................................................................................13
7.1. Giới thiệu chương trình: ............................................................................................................13
7.2. Hướng dẫn sử dụng: ..................................................................................................................13
III. Các kỹ thuật cài đặt......................................................................................................................................14
1. Tổ chức dữ liệu .........................................................................................................................................14
a. Đánh giá ........................................................................................................................................14
b. Giải pháp. ......................................................................................................................................15
2. Cách thức tra từ .......................................................................................................................................16
3. Cách thức xử lý vấn đề load danh sách .....................................................................................................16
a. Đánh giá. .......................................................................................................................................16
b. Giải pháp .......................................................................................................................................17
4. Menu động................................................................................................................................................18
a. Ý tưởng..........................................................................................................................................18
b. Giải pháp. ......................................................................................................................................18
5. Đối sánh chuỗi, tìm kiếm ..........................................................................................................................19
a. Đánh giá ........................................................................................................................................19
b. Giải pháp. ......................................................................................................................................19
6. Phát âm ....................................................................................................................................................20
7. Tra hình minh họa....................................................................................................................................21
a. Phân tích. ......................................................................................................................................21
b. Kết quả thực hiện. .........................................................................................................................21
8. Dịch văn bản online ..................................................................................................................................23
a. Phân tích. ......................................................................................................................................23
b. Kết quả thực hiện. .........................................................................................................................23
IV. Những hạn chế và đề xuất giải pháp .............................................................................................................24
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 4 | 2 9
1. Khởi động chậm .......................................................................................................................................24
2. Phát âm không chuẩn..................................................................................................................................24
V. Những chức năng chưa thực hiện được ........................................................................................................25
1. Thiếu chức năng thêm, xóa, sửa................................................................................................................25
a. Những trở ngại khi thêm từ ...........................................................................................................25
b. Những trở ngại khi xóa từ .............................................................................................................26
c. Những trở ngại khi sửa từ .............................................................................................................27
2. Thiếu chức năng Click and See:................................................................................................................27
VI. Tài liệu tham khảo .......................................................................................................................................28
1. Bài giảng chuyên đề CNPM 1 – Lập Trình Hiện Đại ................................................................................28
2. Bài viết về sản phẩm sp dict ......................................................................................................................28
3. Phát âm(trở về) .............................................................................................................................................28
4. Lớp OpenFileDialogEX. ...........................................................................................................................28
5. Dịch văn bản online ..................................................................................................................................29
6. Hướng dẫn thao tác với hastable ..............................................................................................................29
VII. Lời kết ..........................................................................................................................................................29
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 5 | 2 9
Lời cảm ơn
Lời đầu tiên, xin kính gửi tới thầy Trần Minh Triết và các thầy cô hướng dẫn thực
hành môn Chuyên đề CNPM1- Lập Trình Hiện Đại, khoa Công Nghệ Thông Tin,
trường ĐH KHTN, T.P Hồ Chí Minh lời chúc sức khỏe và lòng biết ơn sâu sắc. Xin
cám ơn thầy đã tận tâm truyền đạt những kiến thức quý báu và tạo điều kiện để nhóm
chúng em hoàn thành được đồ án này.
Trong quá trình thực hiện đồ án, nhóm đã được tham khảo nhiều ý kiến thảo luận
trên diễn đàn môn học, rất cảm ơn tinh thần học hỏi và đóng góp của các bạn. Ngoài
ra, các bài viết hết sức bổ ích của các tác giả Bùi Đức Tiến, José Gallardo Salazar,
Piyush Shah, Mahesh Chand … cũng có ý nghĩa với đồ án này rất nhiều.
Xin chân thành cám ơn!
Nhóm tác giả.
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 6 | 2 9
I. Giới thiệu
1. Tác giả
Họ Tên: ................................. Nguyễn Minh Bình
MSSV:.................................... 0612023
Điện thoại: ............................ 0906 637 538
Email: ..................................... ihnel48@gmail.com
Họ Tên: ................................. Đỗ Thị Hồng Thu
MSSV:.................................... 0612400
Điện thoại: ............................. 01677557054
Email: ..................................... do.hongthu@yahoo.com.vn
2. Chương trình ML Dict
ML Dict (Multilaguage dictonary) là phần mềm từ điển đa ngôn ngữ cho pocket
PC chạy trên hệ điều hành windows CE và .Net Compack Framwork.
Phần mềm này được xây dựng theo yêu cầu đồ
án của môn Chuyên Đề Công Nghệ Phần Mềm 1
- Lập Trình Hiện Đại do thầy Trần Minh Triết và
thầy Bùi Tấn Lộc phụ trách. Trong quá trình thực
hiện đồ án này, nhóm đã gặp không ít khó khăn
và bỡ ngỡ trong nhiều công đoạn do đây là lần
đầu tiên nhóm làm việc với môi trường lập trình
trên dot Net CF. Hơn nữa, từ điển là một loại
phần mềm làm việc với những file dữ liệu lớn,
yêu cầu phải xử lý nhanh. Những yêu cầu này thật
sự khắt khe và không hề dễ dàng.
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 7 | 2 9
Mục đích của đồ án này là nhằm ứng dụng những lý thuyết, phương pháp đã học
vào một phần mềm cụ thể để kiểm tra, trao dồi và học hỏi thêm những kỹ thuật mới.
Những chức năng mà nhóm đã làm được vẫn chỉ dừng lại ở mức bình thường và chắc
hẳn còn nhiều điều thiếu sót. Mọi ý kiến đóng góp, chia sẻ hay thắc mắc về chương
trình sẽ luôn được đón nhận và ghi nhớ.
3. Giới thiệu chức năng
Chức năng tra từ, phát âm
Cũng như những phần mềm từ điển khác, ML Dict cũng có chức năng cơ bản
là tra từ và phát âm từ vừa tra.
Người dùng có thể lựa chọn nhiều cách khác nhau để tìm và tra một từ vựng.
(xem hướng dẫn sử dụng).
Chức năng thêm/bớt từ điển
Chương trình cho phép người dùng cài thêm từ điển mới hoặc bỏ bớt từ điển
trong số những từ điển đã cài đặt tùy theo nhu cầu sử dụng.
Chức năng ghi nhớ từ vừa tra:
Nhờ chức năng này, người dùng có thể nhanh chóng tra lại những từ vừa tra.
Danh sách các từ vừa tra sẽ được lưu lại vào bộ nhớ. Theo đó, có thể dùng các
phím mũi tên hoặc các button hình mũi tên ở góc trên, bên phải để tra.
Chức năng dịch văn bản
Nếu máy đã được kết nối internet, chương trình
cung cấp thêm một chức năng bổ ích là dịch văn
bản online. Chức năng này hoạt động dựa trên sự
hỗ trợ bởi công cụ dịch online của google.
Chức năng trợ giúp
Nếu không hiểu hoặc không biết sử dụng chức
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 8 | 2 9
năng nào đó của chương trình, người dùng có thể tham khảo thông tin trợ giúp
qua menu Trợ giúp…
Các tùy chọn
Với các tùy chọn được hỗ trợ, việc sử dụng
chương trình sẽ trở nên rất linh động. Có thể lựa
chọn cho phép chương trình tự động hiển thị phiên
âm của từ đang tra, phát âm, hiện ví dụ, hình minh
họa cho từ đó hay không…
Nếu lựa chọn hiện danh sách từ tự động, mỗi khi user nhập từ cần tra vào ô
nhập liệu, một danh sách các từ gần đúng sẽ được tự động hiển thị hỗ trợ cho
người dùng tìm từ nhanh hơn.
Lưu cấu hình cho phiên làm việc sau.
Chức năng này sẽ lưu xuống file những thông tin liên quan đến trạng thái làm
việc của chương trình: các tùy chọn, danh sách từ điển đã cài …
II. Hướng dẫn sử dụng:
1. Sử dụng menus:
1.1. Menu Từ Điển:
Menu Từ điển chứa các lệnh cho phép thao
tác với các từ điển:
Thoát chương trình: thoát và lưu lại
thông tin về các bộ từ điển đã cài.
Thêm hoặc xóa từ điển: user tự do quản lý các từ điển mà mình muốn
sử dụng, có thể thêm hay bớt các từ điển tùy theo nhu cầu.
Các dòng còn lại là tên của các từ điển đã được cài đặt vào dữ liệu
của chương trình. Từ điển nào đang được sử dụng sẽ có dấu check ở phía
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 9 | 2 9
trước trong menuItems tương ứng. Các menuItems này là “động” . Nghĩa là
chúng sẽ tự sinh ra và mất đi tùy thuộc vào các từ điển được cài hay gỡ bỏ.
1.2. Menu Tùy Chỉnh
Hiện phiên âm: Hiện hay ẩn phần phiên
âm của từ được tra.
Hiện ví dụ: Hiện hay ẩn ví dụ trong
phần nghĩa của từ được tra.
Phát âm khi tra: khi một từ được tra ,
có tự động phát âm từ đó hay không.
Hiện danh sách từ tự động: Khi user nhập từ cần tra, có tự động hiển
thị danh sách từ gần đúng hay không.
Hình minh họa: khi tra một từ, có tự động search hình ảnh minh họa
liên quan đến từ đó hay không. Chức năng này chỉ hoạt động được khi đã
kết nối internet.
1.3. Menu Công Cụ
Dịch văn bản online: User được hỗ trợ trong
việc dịch một từ hoặc một đoạn văn bản online (dựa
vào trang translate.google.com)
Đọc từ đang tra: Phát âm lại từ mà user vừa tra.
1.4. Menu Trợ Giúp
Giới thiệu: Giới thiệu chung về phần mềm ML
Dict, giới thiêu chức năng.
Hướng dẫn sử dụng: Hỗ trợ cách thao tác step
by step chương trình ML Dict.
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 10 | 2 9
2. Hướng dẫn tra từ.
ML Dict hỗ trợ nhiều cách tra từ khác nhau.
Người dùng có thể tùy ý lựa chọn trong nhiều
trường hợp.
User dùng soft keyboard, nhập từ cần tra vào
ô nhập liệu ở góc trên bên trái. Sau khi nhập xong
bấm vào button có hình kính lúp hoặc nhấn Enter
để tra từ. Nghĩa của từ cần tra sẽ hiển thị ở vùng không gian bên dưới.
Trong quá trình nhập từ cần tra, chương trình sẽ
tự động dò tìm với những ký tự đã gõ trong ô nhập liệu
và cho ra nghĩa của từ gần giống với những ký tự đã
gõ nhất. Nếu từ đang được select trong danh sách đúng
với từ mà người dùng muốn tìm thì chỉ cần click
hoặc nhấn enter để tra mà không cần phải gõ các ký tự
còn lại.
Thay vì nhập các ký tự, user có thể click vào
mũi tên bên phải ô nhập liệu . Sẽ có một danh sách
các từ được xổ xuống và user có thể tìm từ cần tra
bằng cách duyệt danh sách, select từ muốn tra tra như
cách trên.
Ngoài ra, user còn có thể tra từ bằng cách click vào các button: . Quá
trình tra từ của user sẽ được lưu lại trong history. Nếu user muốn tra lại từ trước hay sau
trong danh sách history thì click vào . Hoặc nếu user muốn tra từ liền trước hay
liền sau trong từ điển theo thứ tự alphabet thì click vào .
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 11 | 2 9
3. Tạo các file dữ liệu cho từ điển.
Chạy công cụ Tạo index cho từ điển. ( công cụ này chạy trên máy desktop).
Click nút Tìm... để chỉ ra đường dẫn file dữ liệu đầu vào dạng *.xml
Click nút Tạo... để tiến hành tạo dữ liệu hoặcThoát để hủy bỏ quá trình tạo
dữ liệu
Lưu ý:
- Dữ liệu từ điển thường là một file rất lớn do đó thời gian để công cụ tạo
index cho từ điển chạy có thể sẽ rất lâu. Thời gian để công cụ này tạo xong các
file dữ liệu sẽ nhiều hay ít tùy thuộc vào số lượng từ trong từ điển đó. Ví dụ: từ
điển anh việt với 108854 từ sẽ mất khoảng 15 phút trong khi các từ điển khác
khoảng vài chục ngàn từ chỉ mất vài giây.
- Đầu vào của công cụ này là file dữ liệu từ điển dạng xml. Đầu ra là một bộ
gồm 3 file cho mỗi từ điển. Ví dụ: input là : anh-viet.xml thì đầu ra tương ứng
sẽ là: anhviet.dat, anhviet1.idx, anhviet2.idx. Chúng ta sẽ dùng 3 tập tìn này để
cài đặt vào hệ thống ML Dict
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 12 | 2 9
4. Cài thêm từ điển
Từ màn hình giao diện chương trình, bấm menu :Từ điển , chọn Thêm hoặc
xóa từ điển.
Click chọn thẻ Thêm.
Nhập tên cho từ điển muốn thêm. Tiếp tục bấm nút Duyệt để trỏ tới file dữ
liệu cho từ điển (có dạng *.dat ) đã tạo ra bằng công cụ Tạo Index cho Từ điển .
Click chọn nút Thêm để cài từ điển này vào dữ liệu của chương trình hoặc
click nút Bỏ qua để hủy bỏ tiến trình cài đặt.
5. Gỡ bớt từ điển
Từ màn hình giao diện chương trình, bấm menu :Từ điển , chọn Thêm hoặc
xóa từ điển.
Click chọn thẻ Gỡ bỏ.
Trong danh sách các từ điển đã cài, chọn từ điển
muốn gỡ bỏ và click nút Gỡ. Có thể gỡ bỏ một lúc nhiều từ
điển bằng cách lặp lại thao tác này nhiều lần.
Click nút Lưu để chấp nhận gỡ bỏ hoặc Bỏ qua để
hủy tiến trình gỡ bỏ.
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 13 | 2 9
6. Tra từ online.
Mở kết nối internet
Click chọn menu Công cụ, chọn tiếp Tra Từ
Online
Gõ đoạn văn bản cần dịch ở ô textbox phía trên
Chọn ngôn ngữ nguồn và ngôn ngữ đích cho
thích hợp.
Click button Dịch
Phần văn bản sau khi dịch sẽ được hiển thị ở
khung bên dưới.
7. Trợ giúp
7.1. Giới thiệu chương trình:
Click chọn menu Trợ giúp, chọn
tiếp Giới thiệu
Trang Giới thiệu cung cấp thông tin
về nhóm tác giả và lời cảm ơn đến
mọi người đã nhiệt tình giúp đỡ
trong suốt quá trình làm.
7.2. Hướng dẫn sử dụng:
Trong menu Trợ giúp, chọn tiếp
Hướng dẫn sử dụng
Trang Hướng dẫn sử dụng giới thiệu
đầy đủ về chương trình và các tính năng
hiện có. Người dùng được hướng dẫn
chi tiết cách sử dụng chương trình bằng
hình minh họa từng bước, cụ thể
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 14 | 2 9
III. Các kỹ thuật cài đặt
1. Tổ chức dữ liệu
a. Đánh giá
Trong các phần mềm từ điển nói chung, công đoạn tổ chức dữ liệu cho phần
mềm quyết định tính thành công của phần mềm đó. Tổ chức dữ liệu từ điển sao cho
có thể truy cập tức thời là một yêu cầu không phải dễ dàng ngay cả với những phần
mềm chạy trên desktop với bộ nhớ lên tới hàng gigabyte. Với pocket PC, bộ nhớ tí
hon của nó quả thật là một thách thức lớn hơn rất nhiều cho công đoạn này.
Với một từ điển thông thường khoảng vài chục ngàn từ đến vài trăm ngàn từ thì
dữ liệu của nó chiếm khoảng vài MB đến vài chục MB (đo dưới dạng text). Do vậy,
load toàn bộ dữ liệu lên bộ nhớ là vô phương với bộ nhớ tí hon của pocket PC.
Điểm mấu chốt ở đây là phải tổ chức dữ liệu sao cho có thể truy xuất một phần
của file dữ liệu thay vì đọc toàn bộ. Và bởi lẽ dữ liệu từ điển là quá lớn để truy
xuất tuần tự nên khả năng truy xuất ngẫu nhiên file dữ liệu cũng quan trọng
không kém.
Các bộ dữ liệu từ điển được thầy Trần Minh Triết cung cấp là những file xml có
cấu trúc rất dễ hiểu, dễ thao tác trong lập trình. Đồng thời, với một file xml đã load
thành công lên bộ nhớ thì việc truy các node bên trong nó là hoàn toàn ngẫu nhiên
và nhanh chóng. Tuy nhiên, như đã nói ở trên, load toàn bộ dữ liệu lên bộ nhớ của
Pocket PC là không thể trong khi không có cách nào ổn thỏa để có thể đọc một phần
dữ liệu của file xml.
Một điều nữa, những tập tin được đọc, ghi bởi lớp FileStream lại cho phép
truy xuất ngẫu nhiên file (file vật lý) và đọc một phần nhỏ dữ liệu của file lên bộ
nhớ. Tuy tốc độ truy xuất file với FileStream không phải là nhanh, các thao tác với
FileStream cũng không phải là đơn giản, nhưng so với hai lợi ích lớn mà nó mang
lại thì những khó khăn này vẫn nhỏ hơn rất nhiều.
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 15 | 2 9
b. Giải pháp.
Với những nhận xét trên, giải pháp khả thi nhất là chuyển đổi dữ liệu từ dạng
xml sang dạng file được đọc/ghi bởi FileStream. Vì mục đích học tập của đồ án này,
nhóm chọn loại file đầu ra ở dạng text cho dễ kiểm tra, chỉnh sửa.
Công cụ CreateIndex (tạo index cho từ điển) được viết và đính kèm theo từ
điển có chức năng chuyển đổi file dữ liệu dưới dạng *.xml sang dạng *.dat, đồng
thời tạo hai file index nhằm hỗ trợ cho các thao tác với file *.dat được tốt hơn. Mỗi
từ điển sau khi chuyển đổi sẽ gồm một tập 3 file có quan hệ với nhau như hình bên
dưới.
File nghĩa có tên dạng *.dat gồm các đoạn dữ liệu nghĩa liên tục nhau. File
này có kích thước khoảng vài MB đến vài chục MB.
File Index1 có tên file dạng *1.idx là file chỉ mục cho file nghĩa. Nội dung
của file là một danh sách tất cả các từ vựng có trong từ điển. Kèm theo mỗi từ là
thông tin cho biết vị trí bắt đầu và vị trí kết thúc của phần nghĩa tương ứng trong file
nghĩa. Số dòng của file này bằng với số từ có trong từ điển và đã được sắp xếp tăng
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 16 | 2 9
dần theo alphabet. Kích thước của nó vẫn chưa đủ nhỏ để có thể load lên bộ nhớ và
xử lý trong Pocket PC. Với từ điển anh-việt 108854 từ thì file anhviet1.idx của nó có
kích thước khoảng 3.4MB.
File Index2 là file có dạng *2.idx. File này là chỉ mục cho file index1. Nội
dung của file là danh sách các chỉ mục trỏ tới các block từ trong index1. Một block
từ được định nghĩa là một nhóm các từ vựng liền nhau theo thứ tự alphabet và có đặc
điểm chung là 3 ký tự đầu của mỗi từ thành viên đều giống nhau. Một số trường hợp
đặc biệt, những từ gồm 1 hoặc 2 ký tự cũng được nhóm riêng thành một nhóm.
Kích thước của file index2 là đủ nhỏ ( <100KB) để có thể load toàn bộ lên bộ
nhớ phục vụ cho xử lý. Toàn bộ dữ liệu của index2 sẽ được load lên và “gắn” vào
một HashTable với key là 3 ký tự đầu của nhóm, value là chuỗi chứa thông tin bắt
đầu và kết thúc của block từ tương ứng trong file index1. Bằng cách này, hoàn toàn
có thể truy xuất ngẫu nhiên nội dung index2 (đã load lên bộ nhớ).
2. Cách thức tra từ
Để tra một từ bất kỳ, trước hết cần xác định từ đó thuộc block nào dựa vào 3
ký tự đầu tiên của từ đó và lấy thông tin vị trí bắt đầu, kết thúc của block.
Mở file index1, nhảy tới vị trí bắt đầu block từ và đọc toàn bộ block lên bộ
nhớ.
Search ra vị trí của từ trong block để lấy thông tin vị trí bắt đầu và kết thúc
của phần nghĩa tương ứng.
Mở file nghĩa, nhảy tới vị trí bắt đầu phần nghĩa và load lên bộ nhớ.
3. Cách thức xử lý vấn đề load danh sách
a. Đánh giá.
Theo cách nghĩ thông thường, việc load danh sách từ sẽ là load toàn bộ dữ liệu
và hiển thị lên list box cho người dùng, người dùng có thể tự do chọn từ và kéo
thanh trượt di chuyển lên xuống xuyên suốt lượng từ khổng lồ của từ điển. Tùy vào
độ lớn của từng bộ dữ liệu từ điển mà thời gian load danh sách sẽ nhanh hay chậm.
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 17 | 2 9
Nếu chương trình từ điển cho phép sử dụng nhiều bộ từ điển, ví dụ như Anh_Việt,
Việt_Anh, Việt_Pháp v.v…, thì trong mỗi khoảng thời gian xác định, chỉ có dữ liệu
của bộ từ điển đó được load lên. Như vậy, khi người dùng muốn chuyển đổi qua lại
giữa từ điển này và từ điển kia, sẽ mất nhiều thời gian cho việc load toàn bộ dữ liệu
từ điển và hiển thị.
Thêm vào đó, như đã phân tích ở phần „Tổ chức dữ liệu’, cách làm này chỉ
thích hợp đối với hệ máy có dung lượng bộ nhớ … dư dả. chỉ riêng danh sách từ
của một từ điển cũng đã lên đến vài MB, vượt quá khả năng cho phép của một
pocket PC thông thường.
Cách làm tốt và hợp lý hơn là chỉ load một phần dữ liệu thích hợp, vừa đủ để
xem và hiển thị lên list box dựa vào từ mà người dùng đang gõ. Ví dụ người dùng
gõ từ „singer‟, và trong từ điển thì vị trí từ này là khoảng 87485, nói nôm na, ta sẽ
load và hiển thị lên danh sách một số từ nằm ở khoảng này.
b. Giải pháp
Để tiết kiệm chỗ trống cho màn hình giao diện, danh sách từ sẽ được thiết kế
giả lập một combobox (gồm text box, listbox, vscrollbar và môt picture box).
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 18 | 2 9
Như vậy sẽ phải xử lý theo 2 hướng. Hướng thứ nhất là khi người dùng tra từ,
sau khi tìm được từ đó và hiện danh sách 12 từ lên listbox, phải xác định được vị trí
của từ đó trong từ điển là bao nhiêu để đặt lại vị trí cho thanh VScrollbar, tạo cảm
giác như toàn bộ từ trong từ điển đã được load hết vào listbox (nghĩa là mỗi khi tra
đến từ nào, thanh VScrollbar „dừng‟ đúng vị trí của từ đó trong từ điển). Hướng thứ
hai là khi người dùng không gõ từ vào listbox mà di chuyển thanh scrollbar lên
xuống, phải tìm được từ trong dữ liệu từ điển có vị trí bằng với vị trí của thanh
scrollbar. Sau đó load 12 từ phía sau từ này vào listbox. (Xem các phương pháp tra
từ đã trình bày ở trên).
4. Menu động
a. Ý tưởng.
Danh sách các menu hiện tên từ điển ứng với mỗi thao tác thêm hay bỏ bớt từ
điển của người dùng sẽ thay đổi, nói cách khác, các menu này là „động‟. Đồng thời
khi người dùng click chọn từ điển nào, menu ứng với từ điển đó sẽ có chức năng
„thông báo‟ để chương trình load file index2 của từ điển lên.
Thêm vào đó, các menu cần được lưu lại cho lần sử dụng sau của người dùng
chứ không phải chỉ tồn tại trong lúc chương trình đang thực hiện rồi trở lại trạng
thái ban đầu mỗi lần mở chương trình.
b. Giải pháp.
Các bộ từ điển và đường dẫn tới chúng được lưu vào trong file dictionaries.xml.
Khi chương trình khởi động sẽ load file này và lấy thông tin về tên, đường dẫn của
từ điển lưu vào một hashtable, với key là tên từ điển và value là đường dẫn. Như
vậy, mỗi lần thêm hay xóa từ điển, chỉ cần thao tác trước với hashtable này, xây
dựng danh sách các menu từ điển cũng dựa trên nó.
Sau mỗi lần hoạt động, ta sẽ xóa bỏ nội dung cũ và cập nhật thông tin mới vè
danh sách các từ điển trong file dictionaries.xml thông qua hashtable này.
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 19 | 2 9
5. Đối sánh chuỗi, tìm kiếm
a. Đánh giá
Trong các yếu tố phục vụ cho việc dò tìm từ, đối sánh chuỗi chính xác là quan
trọng hơn cả. Trước hết, cần phải có một phép so sánh đủ chính xác để phát hiện
một từ bất kỳ trong danh sách có phải là từ đang được tìm hay không. Sau nữa, để
công việc dò tìm đạt hiệu quả, một danh sách được sắp xếp thứ tự phải là yêu cầu
hàng đầu. Một danh sách từ vựng được sắp hỗn độn không thể nào thích hợp với
phương pháp truy xuất ngẫu nhiên theo chỉ mục và cũng không thể tránh khỏi việc
dò tìm trên toàn bộ dữ liệu mỗi khi cần tra từ.
Thực tế, theo nhận định của nhóm, dot NET chưa thật sự hỗ trợ tốt trong khâu
đối sánh chuỗi tiếng việt. Những chuỗi (kiểu string) bình thường, không dấu thì có
thể dễ dàng compare với nhau với kết quả rất tốt. Tuy nhiên với những ký tự có dấu
trong tiếng việt, tiếng pháp … thì hầu hết là sai. Một ví dụ điển hình, khi so sánh
hai chuỗi “a”, “ả” bằng tất cả những phương pháp mà dot Net CF hỗ trợ
(CultureInfo, string.Compare, phương thức Sort() của lớp List … ) thì kết quả
đều cho thấy “a” đứng trước “ả”. Lặp lại tương tự với chuỗi “a dua”, “ả đào”
thì kết quả là “a dua” dứng sau “ả đào”, một kết quả thật sự khó hiểu.
Một ký tự trong bảng mã unicode tổ hợp chiếm 2bytes trong khi một ký tự
tương đương trong unicode dựng sẵn chiếm 1byte. Các phương pháp so sánh mà
dot Net hỗ trợ cho đến hiện nay chỉ làm việc tốt với unicode tổ hợp. Dữ liệu từ điển
dạng file xml được cấp sẵn bởi thầy Trần Minh Triết được viết bằng bảng mã
unicode dựng sẵn. Do đó, đối sánh theo cách thông thường là không hiệu quả.
b. Giải pháp.
Thêm một điều kỳ lạ nữa, tuy rằng kết quả so sánh các chuỗi unicode dựng sẵn
không chính xác trong một số trường hợp như những nhận định trên nhưng khi tách
rời chúng ra và tiến hành đối sánh lần lượt từng ký tự trong chuỗi thì lại cho kết
quả chính xác. Đây cũng chính là phương pháp đối sánh được sử dụng trong đồ án
này.
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 20 | 2 9
Có thể, phương pháp đối sánh chuỗi mà ML Dict sử dụng chưa phải là cách tốt
nhất cả về thời gian thực thi lẫn hình thức. Tuy nhiên, để có được kết quả đối sánh
chính xác thì hiện tại nhóm không còn cách nào hơn.
Về vấn đề tìm kiếm, giải pháp được lựa chọn ở đây là tìm kiếm tuần tự một từ
trong block của nó. Như đã trình bày ở phần giới thiệu chức năng, ML Dict hỗ trợ
tìm từ gần đúng. Nghĩa là để tra một từ (có nhiều ký tự), người dùng chỉ cần nhập
vào một số ký tự đầu tiên của từ đó là đã có thể tìm thấy từ cần tra. Với cách truy
vấn mờ như thế cộng với tính chất sắp thứ tự (tăng dần) và gom nhóm của dữ liệu,
phương pháp tìm kiếm nhị phân sẽ không còn thích hợp nữa.
6. Phát âm
Đối với chương trình viết trên desktop, việc thực hiện chức năng phát âm dạng
Text to Speech là rất dễ vì chỉ cần thêm bộ thư viện có sẵn là Microsoft Speech
Object Library(viết gọn là SpeechLib), sử dụng đối tượng SpVoice của thư viện này
để đọc từ. Tuy nhiên trên pocket PC lại giới hạn không hỗ trợ bộ thư viện này.
Để thực hiện chức năng phát âm, nhóm đã sử dụng lại 2 file .dll được chia sẻ
bởi tác giả agraham là FliteDevice.dll và fliteDLL.dll. Dung lượng file
FliteDevice.dll khoảng 4KB được để chung trong thư mục của chương trình và
chương trình sẽ tham chiếu tới thư viện này. File fliteDLL.dll phải chép vào thư
mục Windows trong máy pocketPC, file này có dung lượng 2,96MB.
2 bộ thư viện này cung cấp sẵn đối tượng FliteDevice với phương thức
Say(string) để thực hiện chức năng Text to Speech. Thực chất file FliteDevice.dll
mà chương trình tham chiếu tới đóng vai trò như một chiếc cầu nối, cung cấp hàm
dưới dạng đơn giản nhất, khi chương trình gọi hàm, nó sẽ liên kết tới file chính là
fliteDLL.dll đã được chép trong thư mục Windows để tiếp tục xử lý, phát âm chuỗi
từ. LINK THAM KHẢO FLITE
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 21 | 2 9
7. Tra hình minh họa
a. Phân tích.
Dựa vào bộ máy tìm kiếm phổ biến nhất hiện nay là Google, đối với mỗi từ mà
người dùng muốn hiển thị hình ảnh, chương trình sẽ tạo kết nối đến trang tìm hình
của Google là images.google.com.vn. Tùy thuộc vào từ được tra, đường dẫn đến
trang kết quả của Google sẽ khác nhau phần tham số bên trong.
Khi tìm hình ảnh bằng Google, kết quả hình sẽ được phân chia thành nhiều
trang, số lượng hình trong mỗi trang là 20. Đó chỉ là hình dạng thu nhỏ để người
dùng nhìn nhanh, quyết định chọn hình nào để sử dụng. Khi mở từng hình kết quả
trong một trang riêng, hình đó mới được thể hiện đúng với kích thước thật.
Như vậy khi tra hình minh họa của một từ, trang kết quả sẽ chứa đường link của
tập 20 hình này. Nhóm đã thử tìm kiếm nhiều chuỗi từ khác nhau, lưu lại trang kết
quả của Google và mở source của trang kết quả này để phân tích, tìm vị trí bắt đầu
của tập đường link các hình kết quả và lưu lại vào mảng chuỗi.
b. Kết quả thực hiện.
Sau bước phân tích và thử tìm kiếm với nhiều chuỗi từ khác nhau, nhóm đã tìm
được cấu trúc đường link đến trang kết quả hình ảnh của Google. Đường link có
dạng như sau: [...] . Khi cần
tìm kiếm chuỗi từ nào, ta sẽ thay chuỗi từ đó vào vị trí […] và tạo đối tượng
HttpWebRequest để kết nối tới. Tuy nhiên có sự khác nhau trong đường link kết quả
khi tìm từ có khoảng trắng và tìm từ viết liền: từ có khoảng trắng sẽ được thay
khoảng trắng đó bằng dấu „+‟.
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 22 | 2 9
Ví dụ, tìm từ „computer‟ sẽ có đường link kết quả là
,
Trong khi tìm từ khác có khoảng trắng, như từ „hòa bình‟, kết quả sẽ là:
òa+bình
Như vậy sau khi lấy được source của link kết quả, ta chỉ
lấy phần chuỗi bắt đầu bằng từ khóa „dyn.setResults‟, sau
đó tách cụm link tới từng hình ra thành từng phần và lưu vào
mảng kết quả. Mảng chuỗi này sẽ được định lại thành dạng
html và nối với chuỗi nghĩa khi người dùng tra từ, nếu có
chọn chức năng tìm hình minh họa. Hình bên là một ví dụ
khi tìm với từ khóa button
Bắt đầu mảng chứa link 1 link kết quả
Ví dụ về source của một trang kết quả tìm kiếm hình ảnh
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 23 | 2 9
8. Dịch văn bản online
a. Phân tích.
Cách dịch văn bản online sẽ hoàn toàn tương tự như cách tìm hình trên. Nhóm
sẽ dựa vào dịch vụ translate của google để thực hiện. Ở trang translate của Google,
người dùng được chọn ngôn ngữ nguồn và ngôn ngữ đích để dịch đoạn văn bản vừa
nhập. Tuy nhiên nhóm chỉ lọc lại một số ngôn ngữ mà chương trình có thể hỗ trợ cho
việc hiển thị font, cũng như việc gõ văn bản cần tra. Chương trình sẽ hỗ trợ dịch qua
lại giữa các ngôn ngữ Anh, Hà Lan, Hungari, Indonesia, NaUy, Pháp, Phi-lip-pin,
tiếng Việt và tiếng Ý.
Việc phân tích cấu trúc đường dẫn đến kết quả của trang Google translate được
rút ngắn vì nhóm đã tìm được bài viết trên blog MSDN của tác giả Piyush Shah. Bài
viết đã cung cấp sẵn cấu trúc đường link đến trang Google translate, đồng thời cung
cấp code cụ thể và dễ hiểu để thực hiện. LINK THAM KHAO TRANSLATE
Tuy nhiên bài viết chỉ mang tính tham khảo vì source code này sử dụng đối
tượng WebClient mà .NetCF không hỗ trợ.
b. Kết quả thực hiện.
Cấu trúc đường link kết quả có dạng
{0}&langpair={1}, trong
đó vị trí {0} là chuỗi từ cần dịch và {1} là chuỗi có dạng “ký hiệu ngôn ngữ
nguồn|ký hiệu ngôn ngữ đích”. Ví dụ người dùng cần dịch từ „dictionary‟ sang tiếng
Việt, cấu trúc đường link kết quả cụ thể sẽ là:
n|vi
Nhóm tạo đối tượng HttpWebRequest tương tự như phần tìm hình ảnh thay vì
dùng đối tượng WebClient như trong bài viết hướng dẫn. Kết quả trả về có chứa chuỗi
từ đã được dịch. Tuy nhiên, một chút khó khăn là trang kết quả trả về được định dạng
mặc định với encoding là Western(ISO-8859-1), cần phải chuyển về định dạng UTF-8
để có thể hiển thị lên màn hình web browser của chương trình.
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 24 | 2 9
IV. Những hạn chế và đề xuất giải pháp
1. Khởi động chậm
- Một trong những nguyên nhân chính gây ra sự ì ạch trong quá trình khởi
động của chương trình là công đoạn xây dựng các đối tượng thuộc về chương
trình: form, menu, button… Nhóm đã tiến hành đo và ước lượng thời gian cho
công đoạn này khoảng 6-7 giây. Trở ngại này chỉ có thể chấp nhận mà không có
phương pháp nào cải tiến vì nó phụ thuộc hoàn toàn vào cấu hình máy Pocket PC.
- Nguyên nhân thứ hai là công đoạn xây dựng menu từ điển và load cấu hình
chương trình. Không mất nhiều thời gian như công đoạn trước nhưng cũng tốn
khoảng 2-3 giây. Một trong những chức năng của ML Dict là cho phép người
dùng cài thêm hoặc gỡ bớt từ điển, kéo theo đó chương trình cũng phải có khả
năng tùy biến các menu tương ứng số lượng từ điển đã được cài đặt. Cả thông tin
về danh sách từ điển đã cài và thông tin cấu hình của chương trình đều được lưu
dưới dạng file xml. Ngoài cách này ra, hiện tại nhóm không còn cách nào khác để
cải tiến tốc độ chương trình.
2. Phát âm không chuẩn
Phần phát âm nhóm đã sử dụng file .dll có sẵn, file này đã định dạng mặc
định cho chất lượng âm thanh đầu ra là 8Mhz để tiết kiệm bộ nhớ cho pocket PC, vì
vậy chất lượng âm thanh không tốt là điều khó tránh khỏi.
Nếu sử dụng Webservice để thực hiện chức năng phát âm, sẽ phải làm công
việc như sau: gửi chuỗi text cần phát âm lên một Webservice nào đó, sau khi nhận
chuỗi text này, Webservice sẽ tạo một file phát âm định dạng .wav gửi lên một
server, sau đó gửi link này cho chương trình và chương trình down file âm thanh về
phát lại. Dùng Webservice sẽ được lợi phần phát âm chuẩn xác và tốt hơn nhiều so
với cách dùng file .dll có sẵn, nhưng sẽ phụ thuộc vào tốc độ đường truyền của
mạng internet, và tốc độ xử lý các bước của Webservice đó.
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 25 | 2 9
V. Những chức năng chưa thực hiện được
1. Thiếu chức năng thêm, xóa, sửa
Nhóm đã chọn dữ liệu từ điển dạng file text và tạo ra 2 file index2, index1 để
tránh bớt việc phải tra từ tuần tự quá nhiều. Tuy nhiên, chính cách tổ chức dữ liệu
như vậy làm cho việc cập nhật từ điển qua 3 thao tác thêm/ xóa/ sửa gặp nhiều trở
ngại. Đặc điểm của file index1 là đã được sắp xếp thứ tự alphabet sao cho các từ có
3 ký tự đầu giống nhau nằm gần nhau tạo thành một cụm, còn file index2 sẽ lưu 3
ký tự đầu của từng cụm từ này, lưu cả vị trí bắt đầu và kết thúc cụm từ.
Các thao tác thêm, xóa, sửa sẽ có một trình tự giống nhau như sau: tìm vị trí để
thêm/xóa/sửa từ → thực hiện thêm/xóa/sửa → cập nhật lại các file index2, index1,
file nghĩa nếu cần.
a. Những trở ngại khi thêm từ
Như đã nói, file index1 rất quan tâm đến thứ tự từ. Minh họa như trong hình,
giả sử muốn thêm từ „abczzz‟ vào từ điển, phải trải qua 3 bước:
Trước tiên ta thêm nghĩa vào cuối file nghĩa. Thêm vào cuối file vì
file nghĩa là file không cần quan tâm tới thứ tự, file index1 đã lưu giữ vị trí
nghĩa cụ thể của từng từ.
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 26 | 2 9
Sau đó tìm một vị trí trong file index1 để chèn thêm từ mới vào.
Thao tác tìm vị trí để chèn thêm thực chất chỉ là tra từ mới này trong dữ liệu
từ điển.
Thao tác thêm từ còn phải kiểm tra điều kiện là từ đã có trong dữ liệu hay
chưa. Việc kiểm tra không khó khăn: khi tìm được vị trí thích hợp để chèn
từ mới trong file index1 bước trên, nếu từ ở vị trí này trùng với từ cần thêm,
có nghĩa là từ cần thêm đã tồn tại trong dữ liệu, còn nếu từ ở vị trí này
không trùng với từ cần thêm, có nghĩa là từ đó chỉ là từ gần đúng với từ cần
thêm.
Vậy sau khi thêm xong từ abczzz, giả sử từ này có kích thước là (x)
bytes, khối từ có 3 ký tự đầu là „abc‟ sẽ mở rộng kích thước thêm (x) bytes.
Như vậy, phải cập nhật lại file index2 bắt đầu từ dòng abc cho đến hết file.
Ví dụ khi cập nhật lại dòng abc, giả sử ban đầu dòng có dạng:
abc#vi_tri_bat_dau#vi_tri_ket_thuc#tong_so_tu, sau khi cập nhật sẽ trở
thành abc#vi_tri_bat_dau#vi_tri_ket_thuc + (x)#tong_so_tu + 1.
Việc cập nhật file index2 sẽ gây tốn nhiều thời gian.
b. Những trở ngại khi xóa từ
Đối với việc xóa từ, giả sử người dùng chọn từ muốn xóa và chương trình
tính toán được rằng từ nằm ở vị trí thứ n. Thao tác „xóa‟ từ tương đương với
việc xóa từ nằm trong file index1 và phần nghĩa của từ đó trong file nghĩa.
Cách làm thứ nhất là phân chia file index1 ra thành 3 phần: phần một
là từ mà người dùng muốn xóa, phần hai là các từ đứng phía trước nó,
và phần ba là các từ đứng phía sau. Tạo một file index1 mới, chỉ „sao
chép‟ lại phần hai và phần ba của file cũ. Cách này nghe rất đơn giản
nhưng hoàn toàn không thể làm được vì dung lượng bộ nhớ của
pocket PC không đáp ứng nổi thao tác với file quá lớn như vậy.
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 27 | 2 9
Cách thứ hai là „xóa‟ từ mà người dùng đã chọn bằng các ký tự trắng.
Dòng dữ liệu của từ đó trong file index1 sẽ được thay thế bằng các ký
tự trắng. Như vậy sẽ không phải sao chép lại file index1. Tuy nhiên
cách này hoàn toàn không hay vì thực sự không xóa được từ ra khỏi
dữ liệu. Nếu làm theo cách này, dung lượng của bộ dữ liệu hoàn toàn
không giảm đi sau khi xóa từ. Đồng thời, tất cả các hàm xử lý sự kiện
load từ hay tìm từ mà nhóm đã thiết kế sẽ phải sửa đổi rất nhiều để có
thể phù hợp.
c. Những trở ngại khi sửa từ
Thông thường việc sửa từ chỉ cho phép người dùng sửa phần nghĩa của từ, vì
các từ trong dữ liệu từ điển đã được kiểm tra tính đúng đắn. Nhóm đã chọn
lớp FileStream để thao tác với dữ liệu. Nhược điểm của FileStream là
không cung cấp thao tác sửa dữ liệu mà chỉ cung cấp việc đọc ghi dữ liệu
theo từng byte. Vì vậy, tổ chức dữ liệu theo cách này sẽ không thể thực hiện
chức năng sửa từ.
2. Thiếu chức năng Click and See:
Khi hiện nghĩa của một từ, nếu trong phần nghĩa có chứa những từ khác cùng
nằm trong bộ dữ liệu từ điển của từ đang được tra, thì người dùng có thể click
chuột lên từ đó để xem nghĩa mà không cần phải gõ từ lên ô tìm kiếm.
Web browser trên dot Net CF không hỗ trợ nhiều
tính năng như trên desktop. Cơ bản nhất là phương
thức click không có. Để thực hiện được chức năng
này, cần phải viết một lớp web browser mới, kế thừa
web browser có sẵn và thêm các phươn thức cần thiết
hỗ trợ cho việc click và select văn bản trên web
browser này.
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 28 | 2 9
VI. Tài liệu tham khảo
1. Bài giảng chuyên đề CNPM 1 – Lập Trình Hiện Đại
Tác giả: Thầy Trần Minh Triết
Giảng viên khoa Công Nghệ Thông Tin, trường Đại Học Khoa Học Tự Nhiên, T.P
Hồ Chí Minh.
tmtriet@fit.hcmuns.edu.vn
2. Bài viết về sản phẩm sp dict
Tác giả: Bùi Đức Tiến
Sp Dict là một sản phẩm từ điển mã nguồn mở chạy trên desktop. Nhiều ý tưởng sử dụng trong
ML Dict được tham khảo từ SP Dict.
(Chỉ tham khảo document, không tham khảo mã nguồn).
3. Phát âm
(trở về)
Tác giả: Agraham
Link giới thiệu:
library-device.html
Link download: bao gồm 3 file: file
fliteDLL.dll và FliteDevice.dll là 2 thư viện sử dụng cho việc phát âm, một file
khác là file hướng dẫn, nội dung đơn giản dễ thực hiện.
4. Lớp OpenFileDialogEX.
Tác giả: José Gallardo Salazar - Buenos Aires, Argentina
Với lớp OpenFileDialogEX, ta hoàn toàn có thể duyệt file trên tất cả các thư mục
của pocket PC thay vì bị hạn chế như lớp OpenFileDialog mà dot Net CF hỗ trợ.
Khoa Công Nghệ Thông Tin – Đại Học Khoa Học Tự Nhiên.
Lập Trình Hiện Đại – Nguyễn Minh Bình – Đỗ Thị Hồng Thu. 29 | 2 9
5. Dịch văn bản online
Translate your text using Google Api‟s(trở về) : bài viết của tác giả Piyush Shah
hướng dẫn cách tạo hàm kết nối đến trang dịch văn bản tự động của Google và
nhận kết quả trả về dạng chuỗi ký tự:
ted=true#commentmessage
6. Hướng dẫn thao tác với hastable
Tác giả: Mahesh Chand
sharpcorner.com/Articles/ArticleListing.aspx?SectionID=1&SubSectionID=143
VII. Lời kết
Cho dù đã cố gắng hết sức, những gì nhóm làm được vẫn còn rất hạn chế. Với tinh
thần ham học hỏi và mong muốn sẻ chia, ML Dict sẽ được public lên blog
. Một lần nữa, xin nhấn mạnh là nhóm sẽ rất cảm kích
những ai quan tâm và phản hồi những ý kiến góp ý, đánh giá, bổ sung cho ML Dict.
Tất cả mọi người, những ai tìm thấy được bài viết này, đều được phép sử dụng source
code và sưu liệu ML Dict vào công việc của mình với điều kiện phải ghi rõ nguồn
tham khảo. Đây chính là cách thức thể hiện sự tôn trọng tác giả cũng như tôn trọng
chính bản thân mình.
Nguyễn Minh Bình
Đỗ Thị Hồng Thu
Các file đính kèm theo tài liệu này:
- Từ điển đa ngôn ngữ trên PocketPC.pdf