intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

CHUYỂN MÃ DỮ LIỆU SANG BẢNG MÃ TIẾNG VIỆT UNICODE

Chia sẻ: Nguyen Uyen | Ngày: | Loại File: PDF | Số trang:17

123
lượt xem
5
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Theo quy định của Chính phủ, từ ngày 01/01/2003, tất cả các thông tin tiếng Việt trao đổi trên mạng thông tin đều phải sử dụng bảng mã Tiếng Việt Unicode. Hiện nay trên thị trường đã xuất hiện nhiều công cụ chuyển mã đáp ứng được yêu cầu chuyển văn bản (Text) và siêu văn bản (Hyper Text) từ các bảng mã Tiếng Việt thông dụng như VNI, ABC, ... sang Unicode hiệu quả khá tốt. Ngoài ra, trong bộ gõ Vietkey 2000 cũng đã cung cấp kiểu gõ cho bảng mã Tiếng Việt Unicode. Tuy nhiên về CSDL...

Chủ đề:
Lưu

Nội dung Text: CHUYỂN MÃ DỮ LIỆU SANG BẢNG MÃ TIẾNG VIỆT UNICODE

  1. CHUYỂN MÃ DỮ LIỆU SANG BẢNG MÃ TIẾNG VIỆT UNICODE I.- ĐẶT VẤN ĐỀ : Theo quy định củ a Chính phủ , từ ngày 01/01/2003, tất cả các thông tin tiếng Việt trao đổi trên mạng thông tin đ ều ph ải sử dụng b ảng mã Tiếng Việt Unicode. Hiện nay trên th ị trường đã xuất hiện nhiều công cụ chuyển mã đáp ứng được yêu cầu chuyển văn bản (Text) và siêu văn bản (Hyper Text) từ các b ảng mã Tiếng Việt thông dụng như VNI, ABC, ... sang Unicode hiệu quả khá tốt. Ngoài ra, trong bộ gõ Vietkey 2000 cũng đã cung cấp kiểu gõ cho bảng mã Tiếng Việt Unicode. Tuy nhiên về CSDL thì việc chuyển mã sẽ chạm đến những vấn đ ề phức tạp hơn. Chúng tôi đã giải quyết yêu cầu này bằng một cách đơn giản và ít tốn kém là sử dụng một hàm chuyển mã. Chỉ cần bổ sung hàm này vào chương trình quản lý CSDL (môi trường Foxpro), khi đó các lệnh xuất ra file văn bản phải được "lọ c" qua hàm này đ ể văn bản xu ất ra theo mã Unicode. Với cách giải quyết như vậy, ta không cần phải chuyển mã CSDL và viết lại chương trình phần m ềm.
  2. II.- CHƯƠNG TRÌNH NGUỒN CỦA HÀM CHUYỂN MÃ : Chúng tôi đ ặt tên hàm là BKTOUNI, lưu trong file tên BKTOUNI.PRG. Nội dung file này như sau : (n ếu soạn trên Windword, bạn chọn font .VnTime, rồi Save với dạng Text Only). FUNC BKTOUNI UNI="á" CASE BK="µ" PARA CHUOI PRIVATE ALL UNI="à" SET TALK OFF CASE BK="¶" CHUOI1=ALLTRIM(CHUOI) UNI="ả" CHUOI2="" CASE BK="·" DAI=LEN(CHUOI1) UNI="ã" FOR I=1 to DAI CASE BK="¹" BK=SUBS(CHUOI1,I,1) UNI="ạ" DO CASE CASE BK="¨" CASE BK="¸" UNI="ă"
  3. CASE BK="" UNI="ắ" UNI="ấ" CASE BK="»" CASE BK="Ç" UNI="ằ" UNI="ầ" CASE BK="¼" CASE BK="" UNI="ẳ" UNI="ẩ" CASE BK="½" CASE BK="" UNI="ẵ" CASE BK="Ỉ" UNI="ẫ" CASE BK="" UNI="ặ" UNI="ậ" CASE BK="Ð" CASE BK="©" UNI="é" UNI="â" CASE BK="Ì" CASE BK="¾" UNI="è"
  4. CASE BK="Ỵ" UNI="ể" CASE BK="Ơ" UNI="ẻ" CASE BK="" UNI="ễ" CASE BK="Ư" UNI="ẽ" CASE BK="Đ" UNI="ệ" UNI="ẹ" CASE BK="Ý" CASE BK="ª" UNI="í" UNI="ê" CASE BK="×" CASE BK="" UNI="ì" UNI="ế" CASE BK="" CASE BK="Ị" UNI="ỉ" UNI="ề" CASE BK="" CASE BK="Ĩ" UNI="ĩ"
  5. CASE BK="Þ" UNI="ô" UNI="ị" CASE BK="" CASE BK="" UNI="ố" UNI="ó" CASE BK="" CASE BK="ß" UNI="ồ" CASE BK="ỉ" UNI="ò" CASE BK="" UNI="ổ" UNI="ỏ" CASE BK="ç" CASE BK="" UNI="ỗ" UNI="õ" CASE BK="" CASE BK="" UNI="ộ" UNI="ọ" CASE BK="¬" CASE BK="«" UNI="ơ"
  6. CASE BK="í" UNI="ù" CASE BK="đ" UNI="ớ" CASE BK="" UNI="ủ" CASE BK="ị" UNI="ờ" CASE BK="" UNI="ű" CASE BK="ơ" UNI="ở" CASE BK="ì" UNI="ụ" CASE BK="­" UNI="ỡ" CASE BK="ỵ" UNI="ư" UNI="ợ" CASE BK="" CASE BK="ĩ" UNI="ứ" UNI="ú" CASE BK="" CASE BK="" UNI="ừ"
  7. CASE BK="ư" UNI="ỹ" UNI="ử" CASE BK="þ" CASE BK="÷" UNI="ỵ" UNI="ữ" CASE BK="®" CASE BK="" UNI="đ" UNI="ự" CASE BK="§" CASE BK="ý" UNI="Đ" UNI="ý" CASE BK="¢" CASE BK="" UNI="Â" UNI="ỳ" CASE BK="¤" CASE BK="" UNI="Ô" UNI="ỷ" CASE BK="¥" CASE BK="" UNI="Ơ"
  8. CASE BK="£" UNI=BK UNI="Ê" ENDCASE CASE BK="¦" CHUOI2=CHUOI2+UNI UNI="Ư" ENDFOR OTHER RETURN CHUOI2 III.- CÁCH SỬ DỤNG HÀM : Môi trường Foxpro hiện nay chưa hiểu được Unicode, nên các văn b ản hiển thị trực tiếp trên môi trường này không ra d ấu Tiếng Việt. Bạn ch ỉ có th ể xuất ra file văn bản, sau đó mở file bằng mộ t chương trình xử lý văn bản mạnh (Winword 97 trở lên) ho ặc một Browse hiểu Unicode (Ví dụ : IE phiên bản 5.0 trở lên). Mặt khác, các mã trên là d ạng Text thu ần tuý, nên WINWORD không thể hiển th ị trực tiếp theo b ảng mã Unicode được, mà bạn phải lưu dưới dạng 1 file siêu văn bản (với phần đuôi là .HTM), đầu văn bản có th ẻ mở và thẻ khai báo font, ví dụ : ; cuối văn bản có th ẻ đóng . Ngoài ra, ở cuối mỗi đoạn văn b ản, bạn nên chèn thêm thẻ ngắt dòng thì văn b ản mới hiện ra hoàn chỉnh. Ví dụ 1 : Chương trình sau đây lấy dữ liệu từ file NHANSU.DBF xuất ta file siêu văn b ản DANHSACH.HTM
  9. SET TALK OFF SET SAFETY OFF USE NHANSU.dbf INDEX ON TEN+HODEM TO T.IDX SET PRIN ON SET PRIN TO FILE DANHSACH.HTM ?"" && (Lọ c danh sách những người có tên là Dũng.) LOCA FOR TEN="Dũ ng" && (Dò tìm toàn bộ file CSDL NHANSU.DBF) DO WHILE.NOT.EOF() ?BKTOUNI(HODEM+TEN+","+NGAYSINH+","+DONVI+"") && (HODEM,TEN, NGAYSINH,DONVI là các fileds kiểu Character trong CSDL) CONT ENDDO ?"" SET PRIN TO
  10. Sau khi chạy chương trình, sẽ tạo ra file DANHSACH.HTM có d ạng như sau : Mai Anh Dűng, 18/10/1960, THPT Nguyễn Bỉnh Khiêm Nguyễn Ngọc Dűng, 11/12/1958, THPT Châu Văn Liêm Nguyễn Thanh Dűng, 18/10/1969, THPT Nguyễn Chí Thanh Trần Hoàng Dűng, 28/12/1955, Sở GD-ĐT An Giang Bạn mở file này trong IE sẽ thấy hiện ra như sau : (nh ấp đúp vào tên file để mở) Mai Anh Dịng, 18/10/1960, THPT NguyƠn Bnh Khiªm NguyƠn Ngc Dịng, 11/12/1958, THPT Ch©u V¨n Liªm NguyƠn Thanh Dịng, 18/10/1969, THPT NguyƠn ChÝ Thanh TrÇn Hoµng Dịng, 24/12/1955, S GD-§T An Giang Ví dụ 2 : chuyển 1 file văn b ản.
  11. Hàm BKTOUNI nêu trên cũng có thể vận dụng để chuyển 1 file văn b ản sang mã Unicode. Ta ch ỉ cần copy n ội dung văn bản dán vào 1 field kiểu Memo trong 1 tệp DBF, sau đó xuất field này ra 1 file HTML. Chúng tôi đã làm như sau : - Tạo 1 file CHUYENMA.DBF, với 1 Field duy nhất là NOIDUNG, kiểu memo. Chỉ cần duy nh ất 1 Record. - Tạo file chương trình CHUYENMA.PRG, với nội dung như sau :
  12. USE CHUYENMA.DBF LOCATE FOR NOIDUNG" " SET PRIN ON SET PRIN TO FILE CHUYENMA.HTM ?"" ?"" ?BKTOUNI(NOIDUNG) ?"" SET PRIN TO SET PRIN OFF USE RETURN
  13. - Mở file văn b ản mã tiếng Việt TCVN3 (Bộ font ABC) trong WORDPAD, chèn các thẻ ngắt dòng vào cuối mỗi đoạn văn bản. Lưu lại dạng TEXT Only. Copy toàn bộ nội dung văn bản trong file này vào Clipboard (Nhấn tổ hợp phím Ctrl+A, nhấn tiếp Ctrl+C). (Lưu ý : Chỉ mở file trong WORDPAD, không mở file trong WINWORD, vì nếu vậy, khi copy văn bản mã TCVN3 đ ể dán vào trường Memo sẽ b ị mất một số ký tự). Ví dụ : Chúng tôi đ ã bổ sung thẻ ngắt dòng và Copy đ oạn văn b ản mã TCVN3 sau Quy ®Þnh cđa Cơc S¸ng ch - U ban khoa hc nhµ n­íc s 545 ngµy 26 th¸ng 11 n¨m 1991 vỊ h ×nh thc vµ ni dung ®¬n yªu cÇu b¶o h s¸ng ch, gi¶i ph¸p h÷u Ých C¨n c theo kho¶n 3 §iỊu 5 cđa Ph¸p lƯnh B¶o h quyỊn s h÷u c«ng nghiƯp; C¨n c theo kho¶n 2 §iỊu 28 cđa §iỊu lƯ vỊ S¸ng kin c¶i tin k thut - h ỵp lý ho¸ s¶n xut vµ s¸ng ch, kho¶n 1 §iỊu 30 cđa §iỊu lƯ vỊ Gi¶i ph¸p h÷u Ých vµ ®iĨm 98 cđa Th«ng t­ s 1134/SC ngµy 17 -10-1991 cđa U ban Khoa hc Nhµ n­íc "H­íng dn thi hµnh NghÞ ®Þnh 84/H§BT ngµy 20-3 -1990 cđa Hi ®ng B tr­ng vỊ viƯc sưa ®ỉi, bỉ sung §iỊu lƯ vỊ S¸ng kin c¶i tin k thut - hỵp lý ho¸ s¶n xut vµ s¸ng ch; §iỊu lƯ vỊ Nh·n hiƯu hµng ho¸; §iỊu lƯ vỊ KiĨu d¸n g c«ng nghiƯp; §iỊu lƯ vỊ Gi¶i ph¸p h÷u Ých nh»m thi hµnh Ph¸p lƯnh B¶o h quyỊn s h÷u c«ng nghiƯp" (sau ®©y gi lµ Th«ng t­);
  14. đây vào Clipboard : - Khởi động VFP, Open b ản g CHUYENMA.DBF, m ở field memo NOIDUNG, dán nội dung văn bản vừa copy vào. Đóng file. - Chạy chương trình CHUYENMA.PRG Chương trình sẽ tạo ra 1 file siêu văn bản tên CHUYENMA.HTM. Nội dung đã chuyển có dạng như sau :
  15. Quy định của Cục Sáng chế -Uỷ ban khoa học nhà n ước số 545 ngày 26 tháng 11 năm 1991 về h ình thức và nội dung đơn yêu cầu b ảo hộ sáng chế, giải pháphữu ích Căn cứ theo khoản 3 Điều 5 của Pháplệnh Bảo hộ quyền sở hữu công n ghiệp; Căn cứ theo khoản 2 Điều 28 của Điều lệ về Sáng kiến cải tiến kỹ thuật - h ợp lý hoá sản xuất và sáng chế, khoản 1 Điều 30 của Điều lệ về Giải pháp hữu ích và điểm 98 của Thông tư số 1134/SC ngày 17-10 -1991 của Uỷ ban Khoa học Nhànước "Hướng dẫn thi hành Nghị định 84/HĐBT ngày 20-3 -1990 của Hội đồng Bộ trưởng về việc sửa đổI, bổ sung Điều lệ về Sáng kiến cải tiếnkỹ thuật - hợp lý hoá
  16. Bạn nh ấp đúp file này lên, sẽ nhận được văn bản đã chuyển mã sang Unicode. Chúng tôi đ ã dùng cách này để chuyển mã 1 file văn bản dài 20 trang A4. Kết quả chuyển rất tố t. * Ghi chú : - Các chương trình chuyển mã này cũng có thể ho ạt động tố t trong môi trường Foxpro For Dos. Tuy nhiên do giới hạn bộ nhớ, mỗi lần ch ỉ có th ể chuyển được 6-7 trang văn bản. - Phương pháp nêu trên chỉ có thể thực hiện được với các bảng mã Tiếng Việt 1 byte (VD : b ộ fonts ABC), không thực hiện được với mã 2 bytes (VD : VNI for Windows). IV.- KẾT QUẢ ỨNG DỤNG : Cũng với phương pháp trên, chúng tôi đã tạo mộ t hàm chuyển mã từ TCVN3 sang VNI For Windows. Hai hàm này đã được ứ ng dụng nhiều trong chương trình khai thác CSDL Qu ản lý CB, GV của Bộ GD&ĐT. Trong hộ i ngh ị tháng 1/2004 do Bộ tổ chức, hàm BKTOVNI đã được tích hợp vào Chương trình QL CB,GV của Bộ, nhờ đó đ ã khắc phụ c được mộ t nhược điểm phổ b iến trong chương trình của Bộ là việc tạo các mẫu in (các lo ại quyết định, lý lịch cá nhân,...) thường bị sai hoặc mất một số ký tự (ư, ẩ, ả, ...) khi dùng bảng mã TCVN3. Nhở phương pháp này, việc khai thác chương trình Qu ản lý nhân sự của Bộ GD & ĐT ở các địa phương có hiệu quả hơn. NGUYễN NGọC ÂN Tháng 04/2004
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2