• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Code Tự động chuyển ABC, VNI qua UNI

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

Code Tự động chuyển ABC, VNI qua UNI

Gửi bàigửi bởi truongphu » T.Bảy 29/03/2008 10:30 am

Thủ thuật: Tự động chuyển ABC, VNI qua UNI
Tác giả: Truong Phú/truongphu
Mô tả: Chuyển mã ABC, VNI qua UNI


Chuyển mã từ ABC hoặc VNI sang UNI là một nhu câu thực tế rất lớn. (VIQR ít hơn)
Code sau đây có phần tự động nhận mã nguồn
Khi chạy, cần một text1 để thể hiện nội dung text cũ và mới, và một command1
Thực tế: Code nầy hổ tro' text, nêu sua lai: thay vì text1 mà là clipboard, se hô tro
các file txt, rtf, doc, excel, access... ghê gớm chưa?

Mã: Chọn hết

  1. Option Explicit
  2.  
  3. Private Declare Function MessageBox Lib "user32" Alias "MessageBoxW" (ByVal hwnd As Long, ByVal lpText As Long, ByVal lpCaption As Long, ByVal wType As Long) As Long
  4.  
  5.  'Code: Truong Phú, Cam Lâm, Khánh Hòa
  6. Dim Uni As String
  7. Dim KiêuMa As Boolean
  8.  
  9. Private Function DichABC2Uni(Chuôi As String)
  10. Dim TCVN As String
  11. TCVN = "¸µ¶·¹¨¾»¼½Æ©ÊÇÈÉËÐÌÎÏѪÕÒÓÔÖÝ×ØÜÞãßáâä«èåæçé¬íêëìîóïñòô­øõö÷ùýúûüþ®¸µ¶·¹¡¾»¼½Æ¢ÊÇÈÉËÐÌÎÏÑ£ÕÒÓÔÖÝ×ØÜÞãßáâä¤èåæçé¥íêëìîóïñòô¦øõö÷ùýúûüþ§"
  12. Dim Chép As String
  13. Dim DòTìm As Boolean  'Dò Tìm ký tu cân thay
  14. Dim ii As Long, uu As Byte
  15. For ii = 1 To Len(Chuôi)
  16.     For uu = 1 To 134 'Len(TCVN)
  17.         If Mid(Chuôi, ii, 1) = Mid(TCVN, uu, 1) Then
  18.             DòTìm = True
  19.             Exit For 'uu
  20.         End If
  21.         Next uu
  22.     If DòTìm = True Then
  23.         Chép = Chép & Mid(Uni, uu, 1)
  24.         DòTìm = False
  25.     Else
  26.         Chép = Chép & Mid(Chuôi, ii, 1)  'Các ký tu khác giu nguyên
  27.     End If
  28. Next ii
  29. DichABC2Uni = Chép
  30. End Function
  31.  
  32. Private Function DichVNI2Uni(Câu As String)
  33. Dim VNI As String ' có khoang trông, Ðê bù 1 byte phai thay = dâu |
  34. VNI = "aùaøaûaõaïaêaéaèaúaüaëaâaáaàaåaãaäeùeøeûeõeïeâeáeàeåeãeäí|ì|æ|ó|ò|oùoøoûoõoïoâoáoàoåoãoäô|ôùôøôûôõôïuùuøuûuõuïö|öùöøöûöõöïyùyøyûyõî|ñ|AÙAØAÛAÕAÏAÊAÉAÈAÚAÜAËAÂAÁAÀAÅAÃAÄEÙEØEÛEÕEÏEÂEÁEÀEÅEÃEÄÍ|Ì|Æ|Ó|Ò|OÙOØOÛOÕOÏOÂOÁOÀOÅOÃOÄÔ|ÔÙÔØÔÛÔÕÔÏUÙUØUÛUÕUÏÖ|ÖÙÖØÖÛÖÕÖÏYÙYØYÛYÕÎ|Ñ "
  35.  
  36. Dim VNI2 As String  'Các ký tu 1 byte VNI
  37. VNI2 = "æóòôöîñÆÓÒÔÖÎÑ"
  38. Dim Uni2 As String  'tuong u'ng vo'i Uni
  39. Uni2 = ChrW(7881) & ChrW(297) & ChrW(7883) & ChrW(417) & ChrW(432) & _
  40. ChrW(7925) & ChrW(273) & ChrW(7880) & ChrW(296) & ChrW(7882) & ChrW(416) & ChrW(431) & ChrW(7924) & ChrW(208)
  41.  
  42. Dim Giua As String  'chuôi ký tu sai do 2 lân thay
  43. Giua = ChrW(417) & "ù" & ChrW(417) & "ø" & ChrW(417) & "û" & ChrW(417) & "õ" & ChrW(417) & "ï" & ChrW(432) & "ù" & ChrW(432) & "ø" & ChrW(432) & "û" & ChrW(432) & "õ" & ChrW(432) & "ï" & ChrW(416) & "Ù" & ChrW(416) & "Ø" & ChrW(416) & "Û" & ChrW(416) & "Õ" & ChrW(416) & "Ï" & ChrW(431) & "Ù" & ChrW(431) & "Ø" & ChrW(431) & "Û" & ChrW(431) & "Õ" & ChrW(431) & "Ï"
  44. Dim GUNI As String  'tuong u'ng vo'i Uni
  45. GUNI = ChrW(7899) & ChrW(7901) & ChrW(7903) & ChrW(7905) & ChrW(7907) & ChrW(7913) & ChrW(7915) & ChrW(7917) & ChrW(7919) & ChrW(7921) & ChrW(7898) & ChrW(7900) & ChrW(7902) & ChrW(7904) & ChrW(7906) & ChrW(7912) & ChrW(7914) & ChrW(7916) & ChrW(7918) & ChrW(7920)
  46.  
  47.  
  48. Dim Tam As String, Chép As String
  49. Dim DòTìm As Boolean
  50. Dim ii As Integer, uu As Integer
  51.      ' Thay ký tu 1 byte
  52.     For ii = 1 To Len(Câu)
  53.         For uu = 1 To 14 'Len(VNI2)
  54.             If Mid(Câu, ii, 1) = Mid(VNI2, uu, 1) Then
  55.                 DòTìm = True
  56.                 Exit For 'uu
  57.             End If
  58.         Next uu
  59.         If DòTìm = True Then
  60.             Chép = Chép & Mid(Uni2, uu, 1)
  61.             DòTìm = False
  62.         Else
  63.             Chép = Chép & Mid(Câu, ii, 1)
  64.         End If
  65.     Next ii
  66.     Tam = Chép
  67.      ' Thay ký tu 2 byte
  68.     Chép = ""
  69.     For ii = 1 To Len(Tam)
  70.         For uu = 1 To 267 'Len(VNI)
  71.             If Mid(Tam, ii, 2) = Mid(VNI, uu, 2) Then
  72.                 DòTìm = True
  73.                 Exit For 'uu
  74.             End If
  75.         Next uu
  76.         If DòTìm = True Then
  77.             Chép = Chép & Mid(Uni, (uu + 1) / 2, 1)
  78.             DòTìm = False
  79.             ii = ii + 1 ' bo qua ky tu kê
  80.         Else
  81.             Chép = Chép & Mid(Tam, ii, 1)
  82.         End If
  83.     Next ii
  84.     Tam = Chép
  85.     ' thay ky tu' sai do 1 byte
  86.     Chép = ""
  87.     For ii = 1 To Len(Tam)
  88.         For uu = 1 To 40 'Len(Giua)
  89.             If Mid(Tam, ii, 2) = Mid(Giua, uu, 2) Then
  90.                 DòTìm = True
  91.                 Exit For 'uu
  92.             End If
  93.         Next uu
  94.         If DòTìm = True Then
  95.             Chép = Chép & Mid(GUNI, (uu + 1) / 2, 1)
  96.             DòTìm = False
  97.             ii = ii + 1 ' bo qua ky tu ke
  98.         Else
  99.             Chép = Chép & Mid(Tam, ii, 1)
  100.         End If
  101.     Next ii
  102. DichVNI2Uni = Chép
  103. End Function
  104.  
  105. Private Sub Chuyen_Click()
  106. Dim DòTìm As Boolean, ii As Long, uu As Integer
  107. KiêuMa = False
  108. DoEvents
  109. ' Ðoan sau Ðây, thay vì Text1 mà là Clipboard thì !
  110. Dim TCVN3 As String
  111. TCVN3 = "¸µ¶·¹¨¾»¼½©ª×Þß«¬­÷þ®£×¤¥¦þ§"  'Ký tu nhân dang ABC
  112.     For ii = 1 To Len(Text1)
  113.         For uu = 1 To 28 'Len(TCVN3)
  114.             If Mid(Text1, ii, 1) = Mid(TCVN3, uu, 1) Then
  115.                 GoTo Convert
  116.                 Exit Sub
  117.             End If
  118.         Next uu
  119.     Next ii
  120.  
  121. Dim VNI As String ' có khoang trông Ðê bù 1 byte, Ký tu nhân dang VNI
  122. VNI = "aùaøaûaõaïaêaéaèaúaüaëaâaáaàaåaãaäeùeøeûeõeïeâeáeàeåeãeäoùoøoûoõoïoâoáoàoåoãoäôùôøôûôõôïuùuøuûuõuïöùöøöûöõöïyùyøyûyõAÙAØAÛAÕAÏAÊAÉAÈAÚAÜAËAÂAÁAÀAÅAÃAÄEÙEØEÛEÕEÏEÂEÁEÀEÅEÃEÄOÙOØOÛOÕOÏOÂOÁOÀOÅOÃOÄÔÙÔØÔÛÔÕÔÏUÙUØUÛUÕUÏÖÙÖØÖÛÖÕÖÏYÙYØYÛYÕ"
  123.  
  124.     For ii = 1 To Len(Text1)
  125.         For uu = 1 To 232 'Len(VNI)
  126.             If Mid(Text1, ii, 2) = Mid(VNI, uu, 2) Then
  127.                 KiêuMa = True
  128.                 GoTo Convert
  129.                 Exit Sub
  130.             End If
  131.         Next uu
  132.     Next ii
  133.  
  134. Convert:
  135. Select Case KiêuMa
  136.     Case True
  137.     Text1 = DichVNI2Uni(Text1)
  138.     Case False 'Default, khai KiêuMa = False tu` Ðâu
  139.     Text1 = DichABC2Uni(Text1)
  140. End Select
  141. End Sub
  142.  
  143. Private Sub Form_Load()
  144.     Uni = ChrW(225) & ChrW(224) & ChrW(7843) & ChrW(227) & ChrW(7841) & ChrW(259) & ChrW(7855) & _
  145.     ChrW(7857) & ChrW(7859) & ChrW(7861) & ChrW(7863) & ChrW(226) & ChrW(7845) & _
  146.     ChrW(7847) & ChrW(7849) & ChrW(7851) & ChrW(7853) & ChrW(233) & ChrW(232) & _
  147.     ChrW(7867) & ChrW(7869) & ChrW(7865) & ChrW(234) & ChrW(7871) & ChrW(7873) & _
  148.     ChrW(7875) & ChrW(7877) & ChrW(7879) & ChrW(237) & ChrW(236) & ChrW(7881) & ChrW(297) & _
  149.     ChrW(7883) & ChrW(243) & ChrW(242) & ChrW(7887) & ChrW(245) & ChrW(7885) & _
  150.     ChrW(244) & ChrW(7889) & ChrW(7891) & ChrW(7893) & ChrW(7895) & ChrW(7897) & _
  151.     ChrW(417) & ChrW(7899) & ChrW(7901) & ChrW(7903) & ChrW(7905) & ChrW(7907) & _
  152.     ChrW(250) & ChrW(249) & ChrW(7911) & ChrW(361) & ChrW(7909) & ChrW(432) & ChrW(7913) & _
  153.     ChrW(7915) & ChrW(7917) & ChrW(7919) & ChrW(7921) & ChrW(253) & ChrW(7923) & _
  154.     ChrW(7927) & ChrW(7929) & ChrW(7925) & ChrW(273) & ChrW(193) & ChrW(192) & _
  155.     ChrW(7842) & ChrW(195) & ChrW(7840) & ChrW(258) & ChrW(7854) & ChrW(7856) & _
  156.     ChrW(7858) & ChrW(7860) & ChrW(7862) & ChrW(194) & ChrW(7844) & ChrW(7846) & _
  157.     ChrW(7848) & ChrW(7850) & ChrW(7852) & ChrW(201) & ChrW(200) & ChrW(7866) & _
  158.     ChrW(7868) & ChrW(7864) & ChrW(202) & ChrW(7870) & ChrW(7872) & ChrW(7874) & _
  159.     ChrW(7876) & ChrW(7878) & ChrW(205) & ChrW(204) & ChrW(7880) & ChrW(296) & ChrW(7882) & _
  160.     ChrW(211) & ChrW(210) & ChrW(7886) & ChrW(213) & ChrW(7884) & ChrW(212) & _
  161.     ChrW(7888) & ChrW(7890) & ChrW(7892) & ChrW(7894) & ChrW(7896) & ChrW(416) & _
  162.     ChrW(7898) & ChrW(7900) & ChrW(7902) & ChrW(7904) & ChrW(7906) & ChrW(218) & _
  163.     ChrW(217) & ChrW(7910) & ChrW(360) & ChrW(7908) & ChrW(431) & ChrW(7912) & ChrW(7914) & _
  164.     ChrW(7916) & ChrW(7918) & ChrW(7920) & ChrW(221) & ChrW(7922) & ChrW(7926) & _
  165.     ChrW(7928) & ChrW(7924) & ChrW(208)
  166.    
  167.     '- Vi du:
  168.     Dim MyStr As String
  169.    
  170.     'TCVN3(ABC) -> Unicode
  171.     MyStr = DichABC2Uni("ViÕt b»ng b¶ng m· TCVN3")
  172.     MessageBox Me.hwnd, StrPtr(MyStr), StrPtr(MyStr), &H0&
  173.  
  174.     'VNI -> Unicode
  175.     MyStr = DichVNI2Uni("Vieát baèng baûng maõ VNI")
  176.     MessageBox Me.hwnd, StrPtr(MyStr), StrPtr(MyStr), &H0&
  177. End Sub


o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
katykaty
Thành viên chính thức
Thành viên chính thức
Bài viết: 12
Ngày tham gia: T.Hai 31/03/2008 11:28 am
Đến từ: Hải Phòng
Liên hệ:

Re: Code Tự động chuyển ABC, VNI qua UNI

Gửi bàigửi bởi katykaty » T.Bảy 17/05/2008 9:01 pm

Bác truongphu đưa ra nhiều cách để chuyển sang uni sao không thấy có cách nào chuyển ngược lại thế. Không biết chuyển từ Unicode sang TCNV3 thì làm thế nào nhỉ?

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4762
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 515 time

Re: Code Tự động chuyển ABC, VNI qua UNI

Gửi bàigửi bởi truongphu » T.Sáu 30/05/2008 3:19 pm

Thủ thuật: Function UNItoABC(str$)
Tác giả: truongphu
Mô tả: Function UNItoABC(str$)


Mã: Chọn hết

  1. Private Function UNItoABC(str$) As String
  2. 'font ABC KHÔNG hô tro' các NGUYÊN ÂM CÓ DÂU VIÊT HOA
  3. Dim i&, arrABC() As String, sabc$, ABC$, UNI$, STT
  4. ABC = "¸@µ@¶@·@¹@¨@¾@»@¼@½@Æ@©@Ê@Ç@È@É@Ë@Ð@Ì@Î@Ï@Ñ@ª@Õ@Ò@Ó@Ô@Ö@Ý@×@Ø@Ü@Þ@ã@ß@á@â@ä@«@è@å@æ@ç@é@¬@í@ê@ë@ì@î@ó@ï@ñ@ò@ô@­@ø@õ@ö@÷@ù@ý@ú@û@ü@þ@®@¸@µ@¶@·@¹@¡@¾@»@¼@½@Æ@¢@Ê@Ç@È@É@Ë@Ð@Ì@Î@Ï@Ñ@£@Õ@Ò@Ó@Ô@Ö@Ý@×@Ø@Ü@Þ@ã@ß@á@â@ä@¤@è@å@æ@ç@é@¥@í@ê@ë@ì@î@ó@ï@ñ@ò@ô@¦@ø@õ@ö@÷@ù@ý@ú@û@ü@þ@§"
  5. UNI = "02250224784302277841025978557857785978617863022678457847784978517853023302327867786978650234787178737875787778790237023678810297788302430242788702457885024478897891789378957897041778997901790379057907025002497911036179090432791379157917791979210253792379277929792502730225022478430227784102587855785778597861786301947845784778497851785302330232786778697865020278717873787578777879023702367881029778830243024278870245788502127889789178937895789704167899790179037905790702500249791103617909043179137915791779197921025379237927792979250272"
  6. arrABC = Split(ABC, "@")
  7. For i = 1 To Len(str$)
  8. If InStr(UNI, AscW(Mid(str$, i, 1))) > 0 And AscW(Mid(str$, i, 1)) > 127 Then
  9. STT = InStr(UNI, AscW(Mid(str$, i, 1))) \ 4
  10.  sabc = sabc & arrABC(STT)
  11.  Else
  12.  sabc = sabc & Mid(str$, i, 1)
  13.  End If
  14. Next
  15. UNItoABC = sabc
  16. End Function

Bạn test thử, nếu bug xin báo lại
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
NoBi
Quản trị
Quản trị
Bài viết: 954
Ngày tham gia: T.Ba 18/03/2008 1:22 pm
Đến từ: Sài Gòn
Has thanked: 51 time
Been thanked: 66 time
Liên hệ:

Re: Code Tự động chuyển ABC, VNI qua UNI

Gửi bàigửi bởi NoBi » T.Ba 03/03/2009 2:08 pm

Mình sưu tầm được thêm 2 hàm cũng có tính năng tương tự nè:

Mã: Chọn hết

  1. Function TCVN3toUNICODE(vnstr As String)
  2. Dim c As String, i As Integer
  3.    For i = 1 To Len(vnstr)
  4.       c = Mid(vnstr, i, 1)
  5.       Select Case c
  6.          Case "a": c = ChrW$(97)
  7.          Case "¸": c = ChrW$(225)
  8.          Case "µ": c = ChrW$(224)
  9.          Case "¶": c = ChrW$(7843)
  10.          Case "·": c = ChrW$(227)
  11.          Case "¹": c = ChrW$(7841)
  12.          Case "¨": c = ChrW$(259)
  13.          Case "¾": c = ChrW$(7855)
  14.          Case "»": c = ChrW$(7857)
  15.          Case "¼": c = ChrW$(7859)
  16.          Case "½": c = ChrW$(7861)
  17.          Case "Æ": c = ChrW$(7863)
  18.          Case "©": c = ChrW$(226)
  19.          Case "Ê": c = ChrW$(7845)
  20.          Case "Ç": c = ChrW$(7847)
  21.          Case "È": c = ChrW$(7849)
  22.          Case "É": c = ChrW$(7851)
  23.          Case "Ë": c = ChrW$(7853)
  24.          Case "e": c = ChrW$(101)
  25.          Case "Ð": c = ChrW$(233)
  26.          Case "Ì": c = ChrW$(232)
  27.          Case "Î": c = ChrW$(7867)
  28.          Case "Ï": c = ChrW$(7869)
  29.          Case "Ñ": c = ChrW$(7865)
  30.          Case "ª": c = ChrW$(234)
  31.          Case "Õ": c = ChrW$(7871)
  32.          Case "Ò": c = ChrW$(7873)
  33.          Case "Ó": c = ChrW$(7875)
  34.          Case "Ô": c = ChrW$(7877)
  35.          Case "Ö": c = ChrW$(7879)
  36.          Case "o": c = ChrW$(111)
  37.          Case "ã": c = ChrW$(243)
  38.          Case "ß": c = ChrW$(242)
  39.          Case "á": c = ChrW$(7887)
  40.          Case "â": c = ChrW$(245)
  41.          Case "ä": c = ChrW$(7885)
  42.          Case "«": c = ChrW$(244)
  43.          Case "è": c = ChrW$(7889)
  44.          Case "å": c = ChrW$(7891)
  45.          Case "æ": c = ChrW$(7893)
  46.          Case "ç": c = ChrW$(7895)
  47.          Case "é": c = ChrW$(7897)
  48.          Case "¬": c = ChrW$(417)
  49.          Case "í": c = ChrW$(7899)
  50.          Case "ê": c = ChrW$(7901)
  51.          Case "ë": c = ChrW$(7903)
  52.          Case "ì": c = ChrW$(7905)
  53.          Case "î": c = ChrW$(7907)
  54.          Case "i": c = ChrW$(105)
  55.          Case "Ý": c = ChrW$(237)
  56.          Case "×": c = ChrW$(236)
  57.          Case "Ø": c = ChrW$(7881)
  58.          Case "Ü": c = ChrW$(297)
  59.          Case "Þ": c = ChrW$(7883)
  60.          Case "u": c = ChrW$(117)
  61.          Case "ó": c = ChrW$(250)
  62.          Case "ï": c = ChrW$(249)
  63.          Case "ñ": c = ChrW$(7911)
  64.          Case "ò": c = ChrW$(361)
  65.          Case "ô": c = ChrW$(7909)
  66.          Case "­": c = ChrW$(432)
  67.          Case "ø": c = ChrW$(7913)
  68.          Case "õ": c = ChrW$(7915)
  69.          Case "ö": c = ChrW$(7917)
  70.          Case "÷": c = ChrW$(7919)
  71.          Case "ù": c = ChrW$(7921)
  72.          Case "y": c = ChrW$(121)
  73.          Case "ý": c = ChrW$(253)
  74.          Case "ú": c = ChrW$(7923)
  75.          Case "û": c = ChrW$(7927)
  76.          Case "ü": c = ChrW$(7929)
  77.          Case "þ": c = ChrW$(7925)
  78.          Case "®": c = ChrW$(273)
  79.          Case "A": c = ChrW$(65)
  80.          Case "¡": c = ChrW$(258)
  81.          Case "¢": c = ChrW$(194)
  82.          Case "E": c = ChrW$(69)
  83.          Case "£": c = ChrW$(202)
  84.          Case "O": c = ChrW$(79)
  85.          Case "¤": c = ChrW$(212)
  86.          Case "¥": c = ChrW$(416)
  87.          Case "I": c = ChrW$(73)
  88.          Case "U": c = ChrW$(85)
  89.          Case "¦": c = ChrW$(431)
  90.          Case "Y": c = ChrW$(89)
  91.          Case "§": c = ChrW$(272)
  92.       End Select
  93.       TCVN3toUNICODE = TCVN3toUNICODE + c
  94.    Next i
  95. End Function
  96.  
  97. Function VNItoUNICODE(vnstr As String)
  98. Dim c As String, i As Integer
  99. Dim db As Boolean
  100.    For i = 1 To Len(vnstr)
  101.       db = False
  102.       If i < Len(vnstr) Then
  103.          c = Mid(vnstr, i + 1, 1)
  104.          If c = "ù" Or c = "ø" Or c = "û" Or c = "õ" Or c = "ï" Or _
  105.             c = "ê" Or c = "é" Or c = "è" Or c = "ú" Or c = "ü" Or c = "ë" Or _
  106.             c = "â" Or c = "á" Or c = "à" Or c = "å" Or c = "ã" Or c = "ä" Or _
  107.             c = "Ù" Or c = "Ø" Or c = "Û" Or c = "Õ" Or c = "Ï" Or _
  108.             c = "Ê" Or c = "É" Or c = "È" Or c = "Ú" Or c = "Ü" Or c = "Ë" Or _
  109.             c = "Â" Or c = "Á" Or c = "À" Or c = "Å" Or c = "Ã" Or c = "Ä" Then db = True
  110.       End If
  111.       If db Then
  112.          c = Mid(vnstr, i, 2)
  113.          Select Case c
  114.             Case "aù": c = ChrW$(225)
  115.             Case "aø": c = ChrW$(224)
  116.             Case "aû": c = ChrW$(7843)
  117.             Case "aõ": c = ChrW$(227)
  118.             Case "aï": c = ChrW$(7841)
  119.             Case "aê": c = ChrW$(259)
  120.             Case "aé": c = ChrW$(7855)
  121.             Case "aè": c = ChrW$(7857)
  122.             Case "aú": c = ChrW$(7859)
  123.             Case "aü": c = ChrW$(7861)
  124.             Case "aë": c = ChrW$(7863)
  125.             Case "aâ": c = ChrW$(226)
  126.             Case "aá": c = ChrW$(7845)
  127.             Case "aà": c = ChrW$(7847)
  128.             Case "aå": c = ChrW$(7849)
  129.             Case "aã": c = ChrW$(7851)
  130.             Case "aä": c = ChrW$(7853)
  131.             Case "eù": c = ChrW$(233)
  132.             Case "eø": c = ChrW$(232)
  133.             Case "eû": c = ChrW$(7867)
  134.             Case "eõ": c = ChrW$(7869)
  135.             Case "eï": c = ChrW$(7865)
  136.             Case "eâ": c = ChrW$(234)
  137.             Case "eá": c = ChrW$(7871)
  138.             Case "eà": c = ChrW$(7873)
  139.             Case "eå": c = ChrW$(7875)
  140.             Case "eã": c = ChrW$(7877)
  141.             Case "eä": c = ChrW$(7879)
  142.             Case "où": c = ChrW$(243)
  143.             Case "oø": c = ChrW$(242)
  144.             Case "oû": c = ChrW$(7887)
  145.             Case "oõ": c = ChrW$(245)
  146.             Case "oï": c = ChrW$(7885)
  147.             Case "oâ": c = ChrW$(244)
  148.             Case "oá": c = ChrW$(7889)
  149.             Case "oà": c = ChrW$(7891)
  150.             Case "oå": c = ChrW$(7893)
  151.             Case "oã": c = ChrW$(7895)
  152.             Case "oä": c = ChrW$(7897)
  153.             Case "ôù": c = ChrW$(7899)
  154.             Case "ôø": c = ChrW$(7901)
  155.             Case "ôû": c = ChrW$(7903)
  156.             Case "ôõ": c = ChrW$(7905)
  157.             Case "ôï": c = ChrW$(7907)
  158.             Case "uù": c = ChrW$(250)
  159.             Case "uø": c = ChrW$(249)
  160.             Case "uû": c = ChrW$(7911)
  161.             Case "uõ": c = ChrW$(361)
  162.             Case "uï": c = ChrW$(7909)
  163.             Case "öù": c = ChrW$(7913)
  164.             Case "öø": c = ChrW$(7915)
  165.             Case "öû": c = ChrW$(7917)
  166.             Case "öõ": c = ChrW$(7919)
  167.             Case "öï": c = ChrW$(7921)
  168.             Case "yù": c = ChrW$(253)
  169.             Case "yø": c = ChrW$(7923)
  170.             Case "yû": c = ChrW$(7927)
  171.             Case "yõ": c = ChrW$(7929)
  172.             Case "AÙ": c = ChrW$(193)
  173.             Case "AØ": c = ChrW$(192)
  174.             Case "AÛ": c = ChrW$(7842)
  175.             Case "AÕ": c = ChrW$(195)
  176.             Case "AÏ": c = ChrW$(7840)
  177.             Case "AÊ": c = ChrW$(258)
  178.             Case "AÉ": c = ChrW$(7854)
  179.             Case "AÈ": c = ChrW$(7856)
  180.             Case "AÚ": c = ChrW$(7858)
  181.             Case "AÜ": c = ChrW$(7860)
  182.             Case "AË": c = ChrW$(7862)
  183.             Case "AÂ": c = ChrW$(194)
  184.             Case "AÁ": c = ChrW$(7844)
  185.             Case "AÀ": c = ChrW$(7846)
  186.             Case "AÅ": c = ChrW$(7848)
  187.             Case "AÃ": c = ChrW$(7850)
  188.             Case "AÄ": c = ChrW$(7852)
  189.             Case "EÙ": c = ChrW$(201)
  190.             Case "EØ": c = ChrW$(200)
  191.             Case "EÛ": c = ChrW$(7866)
  192.             Case "EÕ": c = ChrW$(7868)
  193.             Case "EÏ": c = ChrW$(7864)
  194.             Case "EÂ": c = ChrW$(202)
  195.             Case "EÁ": c = ChrW$(7870)
  196.             Case "EÀ": c = ChrW$(7872)
  197.             Case "EÅ": c = ChrW$(7874)
  198.             Case "EÃ": c = ChrW$(7876)
  199.             Case "EÄ": c = ChrW$(7878)
  200.             Case "OÙ": c = ChrW$(211)
  201.             Case "OØ": c = ChrW$(210)
  202.             Case "OÛ": c = ChrW$(7886)
  203.             Case "OÕ": c = ChrW$(213)
  204.             Case "OÏ": c = ChrW$(7884)
  205.             Case "OÂ": c = ChrW$(212)
  206.             Case "OÁ": c = ChrW$(7888)
  207.             Case "OÀ": c = ChrW$(7890)
  208.             Case "OÅ": c = ChrW$(7892)
  209.             Case "OÃ": c = ChrW$(7894)
  210.             Case "OÄ": c = ChrW$(7896)
  211.             Case "ÔÙ": c = ChrW$(7898)
  212.             Case "ÔØ": c = ChrW$(7900)
  213.             Case "ÔÛ": c = ChrW$(7902)
  214.             Case "ÔÕ": c = ChrW$(7904)
  215.             Case "ÔÏ": c = ChrW$(7906)
  216.             Case "UÙ": c = ChrW$(218)
  217.             Case "UØ": c = ChrW$(217)
  218.             Case "UÛ": c = ChrW$(7910)
  219.             Case "UÕ": c = ChrW$(360)
  220.             Case "UÏ": c = ChrW$(7908)
  221.             Case "ÖÙ": c = ChrW$(7912)
  222.             Case "ÖØ": c = ChrW$(7914)
  223.             Case "ÖÛ": c = ChrW$(7916)
  224.             Case "ÖÕ": c = ChrW$(7918)
  225.             Case "ÖÏ": c = ChrW$(7920)
  226.             Case "YÙ": c = ChrW$(221)
  227.             Case "YØ": c = ChrW$(7922)
  228.             Case "YÛ": c = ChrW$(7926)
  229.             Case "YÕ": c = ChrW$(7928)
  230.          End Select
  231.       Else
  232.          c = Mid(vnstr, i, 1)
  233.          Select Case c
  234.             Case "ô": c = ChrW$(417)
  235.             Case "í": c = ChrW$(237)
  236.             Case "ì": c = ChrW$(236)
  237.             Case "æ": c = ChrW$(7881)
  238.             Case "ó": c = ChrW$(297)
  239.             Case "ò": c = ChrW$(7883)
  240.             Case "ö": c = ChrW$(432)
  241.             Case "î": c = ChrW$(7925)
  242.             Case "ñ": c = ChrW$(273)
  243.             Case "Ô": c = ChrW$(416)
  244.             Case "Í": c = ChrW$(205)
  245.             Case "Ì": c = ChrW$(204)
  246.             Case "Æ": c = ChrW$(7880)
  247.             Case "Ó": c = ChrW$(296)
  248.             Case "Ò": c = ChrW$(7882)
  249.             Case "Ö": c = ChrW$(431)
  250.             Case "Î": c = ChrW$(7924)
  251.             Case "Ñ": c = ChrW$(272)
  252.          End Select
  253.       End If
  254.       VNItoUNICODE = VNItoUNICODE + c
  255.       If db Then i = i + 1
  256.    Next i
  257. End Function
:>

tienlbhoc
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 415
Ngày tham gia: T.Bảy 14/07/2007 10:06 pm
Đến từ: Hà Nội
Been thanked: 1 time

Re: Code Tự động chuyển ABC, VNI qua UNI

Gửi bàigửi bởi tienlbhoc » T.Ba 03/03/2009 6:58 pm

Bác nào thử với rtf đi rồi hẵng nói , không dễ ăn đâu
Diễn đàn và blog phần mềm tự làm :
http://my.opera.com/DienDanTienlbhoc/forums/
http://my.opera.com/tienlbhoc/blog/

Giang Hồ
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 50
Ngày tham gia: T.Bảy 12/05/2007 2:36 pm
Đến từ: http://vn-soft.net
Been thanked: 1 time
Liên hệ:

Re: Code Tự động chuyển ABC, VNI qua UNI

Gửi bàigửi bởi Giang Hồ » T.Ba 31/03/2009 9:47 pm

Đây là 2 code chuyển mã TCVN3 -> Unicode và ngược lại rất gọn nhẹ

Mã: Chọn hết

  1. Public Function AbcToUni(str As String) As String 'Code này của bác truongphu
  2. Dim i&, arrUNI() As String, sUni$, ABC$, UNI$, pos&
  3. ABC = "¸µ¶·¹¨¾»¼½Æ©ÊÇÈÉËÐÌÎÏѪÕÒÓÔÖÝ×ØÜÞãßáâä«èåæçé¬íêëìîóïñòô­øõö÷ùýúûüþ®¸µ¶·¹¡¾»¼½Æ¢ÊÇÈÉËÐÌÎÏÑ£ÕÒÓÔÖÝ×ØÜÞãßáâä¤èåæçé¥íêëìîóïñòô¦øõö÷ùýúûüþ§"
  4. 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"
  5. arrUNI = Split(UNI, ",")
  6. For i = 1 To Len(str$)
  7. pos = InStr(ABC, Mid(str$, i, 1))
  8. If pos > 0 Then
  9.   sUni = sUni & ChrW(arrUNI(pos - 1))
  10.  Else
  11.   sUni = sUni & Mid(str$, i, 1)
  12.  End If
  13. Next
  14. AbcToUni = sUni
  15. End Function



Mã: Chọn hết

  1. Public Function UniToAbc(str As String) As String 'Code này do gianghoplus đạo lại từ code trên ^^!
  2. Dim i&, j&, arrUNI() As String, sAbc$, ABC$, UNI$, pos&
  3. ABC = "¸µ¶·¹¨¾»¼½Æ©ÊÇÈÉËÐÌÎÏѪÕÒÓÔÖÝ×ØÜÞãßáâä«èåæçé¬íêëìîóïñòô­øõö÷ùýúûüþ®¸µ¶·¹¡¾»¼½Æ¢ÊÇÈÉËÐÌÎÏÑ£ÕÒÓÔÖÝ×ØÜÞãßáâä¤èåæçé¥íêëìîóïñòô¦øõö÷ùýúûüþ§"
  4. 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"
  5. arrUNI = Split(UNI, ",")
  6. For i = 1 To Len(str$)
  7.  pos = 0
  8.  For j = 0 To UBound(arrUNI)
  9.   If Mid(str$, i, 1) = ChrW(arrUNI(j)) Then pos = j
  10.  Next
  11.  If pos > 0 Then
  12.   sAbc = sAbc & Mid(ABC, pos + 1, 1)
  13.  Else
  14.   sAbc = sAbc & Mid(str$, i, 1)
  15.  End If
  16. Next
  17. UniToAbc = sAbc
  18. End Function
Code chỉ một lần mà fix bug thì mãi mãi
-----------------------------------
VnSecurity 2008 - Bảo vệ máy tính theo phong cách của bạn
Website: http://vn-soft.net


Quay về “[VB] Chuỗi và Thời gian”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách