Đổi TCVN3 sang Unicode

Các thủ thuật liên quan đến xử lý chuỗi và thời gian
Đăng trả lời
Hình đại diện của thành viên
truongphu
VIP
VIP
Bài viết: 4783
Ngày tham gia: Chủ nhật 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 526 times

Đổi TCVN3 sang Unicode

Gửi bài by truongphu »

Thủ thuật: Đổi TCVN3 sang Unicode
Tác giả: truongphu
Mô tả: Trên bài viết của TrungDung1977, chỉ việc thay các trị của ABC là có hàm ABC2UNI.

Mã: Chọn tất cả

 Option Explicit Public Function ABC2Uni(str$) As StringDim i&, arrUNI() As String, sUni$, ABC$, UNI$ABC = "¸µ¶·¹¨¾»¼½Æ©ÊÇÈÉËÐÌÎÏѪÕÒÓÔÖÝ×ØÜÞãßáâä«èåæçé¬íêëìîóïñòô­øõö÷ùýúûüþ®¸µ¶·¹¡¾»¼½Æ¢ÊÇÈÉËÐÌÎÏÑ£ÕÒÓÔÖÝ×ØÜÞãßáâä¤èåæçé¥íêëìîóïñòô¦øõö÷ùýúûüþ§"UNI = "225,224,7843,227,7841,259,7855,7857,7859,7861,7863,226,7845,7847,7849,7851,7853,233,232,7867,7869,7865,234,7871,7873,7875,7877,7879,237,236,7881,297,7883,243,242,7887,245,7885,244,7889,7891,7893,7895,7897,417,7899,7901,7903,7905,7907,250,249,7911,361,7909,432,7913,7915,7917,7919,7921,253,7923,7927,7929,7925,273,225,224,7843,227,7841,258,7855,7857,7859,7861,7863,194,7845,7847,7849,7851,7853,233,232,7867,7869,7865,202,7871,7873,7875,7877,7879,237,236,7881,297,7883,243,242,7887,245,7885,212,7889,7891,7893,7895,7897,416,7899,7901,7903,7905,7907,250,249,7911,361,7909,431,7913,7915,7917,7919,7921,253,7923,7927,7929,7925,272"arrUNI = Split(UNI, ",")For i = 1 To Len(str$)If InStr(ABC, Mid(str$, i, 1)) > 0 Then sUni = sUni & ChrW(arrUNI(InStr(ABC, Mid(str$, i, 1)) - 1)) Else sUni = sUni & Mid(str$, i, 1) End IfNextABC2Uni = sUniEnd Function 
riêng VNI2UNI, xin hẹn vài hôm
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh
Hình đại diện của thành viên
clarkkent
Mạnh Thường Quân
Mạnh Thường Quân
Bài viết: 1641
Ngày tham gia: Thứ 4 16/04/2008 11:25 am
Đến từ: Chợ Lách - Bến Tre
Been thanked: 32 times
Tiếp xúc:

Re: Đổi TCVN3 sang Unicode

Gửi bài by clarkkent »

dientankyniem đã viết:Clarkkent cho mình xin link download ví dụ convert TCVN3 to Unicode di. Mình cảm ơn nhiều lắm, mình thử làm mãi mà không được nên mới cầu cứu mọi người. Tình huống của mình là "Dùng một câu truy vấn để lấy dữ liệu từ một bảng (dữ liệu có bảng mã TCVN3) để chuyển sang một bảng khác có bảng mã là unicode (form mới).
Tập tin đính kèm
[Demo]TCVN3 sang Unicode.rar
Demo đổi TCVN3 sang Unicode - dùng UniTextbox của Dương Quốc Hưng để hiển thị Unicode
(8.29 KiB) Đã tải về 1080 lần
• Hôm bây: www.tinsoftware.com ^ ^
Cố gắng lên...
Hình đại diện của thành viên
truongphu
VIP
VIP
Bài viết: 4783
Ngày tham gia: Chủ nhật 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 526 times

Re: Đổi TCVN3 sang Unicode

Gửi bài by truongphu »

dientankyniem đã viết:Tại sao textbox, combobox, listbox của VB không hỗ trợ unicode nhỉ? Mình cần hiển thị unicode trên combobox và listbox nữa.
Do bạn mới quen VB.
dùng MS form 2.0 với font có mã Unicode
Tập tin đính kèm
Tieng viêt all form.rar
(3.25 KiB) Đã tải về 805 lần
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh
microtri
Thành viên chính thức
Thành viên chính thức
Bài viết: 49
Ngày tham gia: Thứ 7 24/04/2010 3:37 am
Been thanked: 10 times

Function chuyển đổi Font Unicode <-> TCVN3

Gửi bài by microtri »

Tên chương trình: Function chuyển đổi Font Unicode
Ngôn ngữ lập trình: VB6
Tác giả: Sưu tầm
Chức năng: Chuyển Font
Cái này độ lại từ source của vovisoft
Có thể làm thêm các font khác như vietware, vni ...
Chú ý: Add vknt.fon vào windows\font
Tập tin đính kèm
Convert_Font.rar
(6.2 KiB) Đã tải về 967 lần
Sửa lần cuối bởi 1 vào ngày microtri với 0 lần sửa trong tổng số.
ngaydautiendihoc
Thành viên danh dự
Thành viên danh dự
Bài viết: 262
Ngày tham gia: Thứ 2 12/03/2007 10:55 pm
Đến từ: Hà Giang
Has thanked: 2 times
Been thanked: 1 time
Tiếp xúc:

Re: Đổi TCVN3 sang Unicode

Gửi bài by ngaydautiendihoc »

Xin góp vui đoạn VBA này, không nhớ rõ xuất sứ. Mọi người tham khảo xem thế nào.

Mã: Chọn tất cả

Sub ToUnicode()'Chuyen tu TCVN sang UNICODE
    ConvertStr Selection.Text, False
End Sub
Sub ToTCVN()'Chuyen tu UNICODE sang TCVN
    ConvertStr Selection.Text, True
End Sub
Private Sub ConvertStr(Txt As String, Optional isReversed As Boolean = False)
    Dim IStr$, I%, UN, VN
    IStr = Txt

    UN = Array(225, 224, 7843, 227, 7841, 259, 7855, 7857, 7859, 7861, 7863, 226, _
    7845, 7847, 7849, 7851, 7853, 233, 232, 7867, 7869, 7865, 234, 7871, 7873, 7875, _
    7877, 7879, 237, 236, 7881, 297, 7883, 243, 242, 7887, 245, 7885, 244, 7889, 7891, _
    7893, 7895, 7897, 417, 7899, 7901, 7903, 7905, 7907, 250, 249, 7911, 361, 7909, _
    432, 7913, 7915, 7917, 7919, 7921, 253, 7923, 7927, 7929, 7925, 273, 193, 192, 195, _
    258, 194, 212, 416, 431, 272)

    VN = Array(184, 181, 182, 183, 185, 168, 190, 187, 188, 189, 198, 169, 202, 199, 200, _
    201, 203, 208, 204, 206, 207, 209, 170, 213, 210, 211, 212, 214, 221, 215, 216, 220, _
    222, 227, 223, 225, 226, 228, 171, 232, 229, 230, 231, 233, 172, 237, 234, 235, 236, _
    238, 243, 239, 241, 242, 244, 173, 248, 245, 246, 247, 249, 253, 250, 251, 252, 254, _
    174, 193, 192, 195, 161, 162, 164, 165, 166, 167)

    For I = 0 To 75
        If isReversed And InStr(Txt, ChrW(UN(I))) <> 0 Then
            IStr = Replace(IStr, ChrW(UN(I)), "[" & VN(I) & "]")
        ElseIf InStr(IStr, ChrW(VN(I))) <> 0 Then
            IStr = Replace(IStr, ChrW(VN(I)), "[" & UN(I) & "]")
        End If
    Next
    If Len(IStr) <> Len(Txt) Then
        For I = 0 To 75
            If isReversed Then
                IStr = Replace(IStr, "[" & VN(I) & "]", ChrW(VN(I)))
            Else
                IStr = Replace(IStr, "[" & UN(I) & "]", ChrW(UN(I)))
            End If
        Next
    End If
    Selection.Text = IStr
End Sub
Đăng trả lời

Quay về