Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (95.8 KB, 9 trang )
Góp ý bài viết sắp thứ tự chữ Việt Unicode
Tôi có đọc được hai bài viết của tác giả Phạm Văn Trung về kĩ thuật sắp xếp tiếng Việt Unicode đăng trên tạp chí TGVT (tháng 12/2004 - tr.140 và tháng 2/2005 - tr.115). Tôi
áp dụng với cơ sở dữ liệu thử nghiệm - khoảng 60 bản ghi với họ và tên tương đối đơn giản thì chương trình làm việc chính xác. Tuy nhiên, khi áp dụng cho cơ sở dữ liệu
thật - khoảng 400 bản ghi với nhiều tên họ phức tạp thì độ chính xác của việc sắp xếp (theo đúng qui tắc mà tác giả đã nêu ở bài viết thứ hai) chỉ đạt khoảng 85%, khá nhiều
bản ghi xếp sai vị trí.
Dựa trên những ý tưởng về thuật toán mà tác giả Phạm Văn Trung đưa ra, tôi đã viết một chương trình khác để giải quyết triệt để tất cả các trường hợp xuất hiện của tên họ
tiếng Việt. Thuật toán có thể tóm tắt như sau:
- Tách chuỗi kí tự của trường Họ và Tên thành những từ đơn, kể cả trường hợp Họ và Tên nằm trong một trường hay hai trường khác nhau.
- Chuyển những kí tự của từ đơn thu được ở trên thành dạng kí tự thuần La tinh:
+ Nếu là kí tự thuần La tinh thì giữ nguyên (a, d, e, o, u...)
+ Nếu là kí tự tiếng Việt (á, ă, â, đ, ớ...) thì chuyển thành dạng kí tự thuần La tinh nhưng thêm một hoặc hai kí tự "z" vào sau kí tự đó (ă = az, â = azz...)
+ Nếu là kí tự tiếng Việt không có dấu thanh thì thêm "1" vào cuối từ.
+ Nếu là kí tự tiếng Việt có dấu thanh thì thêm các số từ "2" đến "6" vào cuối từ, tương ứng với các dấu huyền, hỏi, ngã, sắc, nặng.
- Qua những thao tác này, toàn bộ phần Họ và Tên sẽ được mã hóa thành dạng kí tự thuần La tinh. Việc mã hóa này tạo điều kiện để Access có thể sắp xếp cơ sở dữ liệu
bằng lệnh Sort bình thường, mà vẫn thực hiện đúng qui luật sắp xếp tiếng Việt là sắp xếp theo kí tự trước rồi mới sắp xếp theo dấu thanh.
Các bước tiến hành cụ thể như sau:
Bước 1:
Tạo ra một form trên đó có chứa một số chuỗi kí tự mẫu tiếng Việt (do VBA chưa hỗ trợ gõ trực tiếp tiếng Việt trong cửa sổ mã lệnh) dùng làm các chuỗi kí tự tham khảo cho
các hàm xử lí tiếng Việt. Ý tưởng này tôi đã "copy" từ tác giả Phạm Văn Trung.
- Vào Excel | Tools | Macro | Visual Basic Editor, chọn Insert | UserForm. Kích phải form, chọn Properties. Đặt tên form là Bieumau.
- Chọn View | Toolbox, chọn công cụ TextBox, chèn bốn textbox vào form, đặt tên lần lượt là TextKhongdau, TextCodau, TextAnhxa, và TextTiengViet.
- Nhập hoặc sao chép những chuỗi kí tự sau vào textbox tương ứng:
TextKhongdau:
"AaĂăÂâBbCcDdĐđEeÊêFfGgHhIiJjKkLlMmNnOoÔôƠơPpQqRrSsTtUuƯưVvWwXxYyZz"
TextCodau:
"ÀàẢảÃãÁáẠạẰằẲẳẴẵẮắẶặẦầẨẩẪẫẤấẬậÈèẺẻẼẽÉéẸẹỀềỂểỄễẾếỆệÌìỈỉĨĩÍíỊịÒòỎỏÕõÓóỌọỒồỔổỖỗỐốỘộỜờỞởỠỡỚớỢợÙùỦủŨũÚúỤụỪừỬửỮữỨứỰựỲỶỸÝỴỳỷỹýỵ”
TextAnhxa:
"aaaaaaaaaaăăăăăăăăăăââââââââââeeeeeeeeeeêêêêêêêêêêiiiiiiiiiiooooooooooôôôôôôôôôôơơơơơơơơơơuuuuuuuuuuưưưưưưưưưưyyyyyyyyyy"
TextTiengViet:
"ăâđêôơư”
- Chọn File | Export File, đặt tên form là Bieumau, chọn thư mục để lưu form, rồi nhấn vào nút Save.