• 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
User avatar
truongphu
VIP
VIP
Posts: 4766
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 520 times

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

Postby truongphu » Sat 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?

Code: Select all

  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

User avatar
katykaty
Thành viên chính thức
Thành viên chính thức
Posts: 12
Joined: Mon 31/03/2008 11:28 am
Location: Hải Phòng
Contact:

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

Postby katykaty » Sat 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ỉ?

User avatar
truongphu
VIP
VIP
Posts: 4766
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 520 times

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

Postby truongphu » Fri 30/05/2008 3:19 pm

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


Code: Select all

  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

User avatar
NoBi
Quản trị
Quản trị
Posts: 962
Joined: Tue 18/03/2008 1:22 pm
Location: Sài Gòn
Has thanked: 53 times
Been thanked: 66 times
Contact:

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

Postby NoBi » Tue 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è:

Code: Select all

  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
Posts: 415
Joined: Sat 14/07/2007 10:06 pm
Location: Hà Nội
Been thanked: 1 time

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

Postby tienlbhoc » Tue 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ổ
Posts: 50
Joined: Sat 12/05/2007 2:36 pm
Location: http://vn-soft.net
Been thanked: 1 time
Contact:

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

Postby Giang Hồ » Tue 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ẹ

Code: Select all

  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



Code: Select all

  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


Return to “[VB] Chuỗi và Thời gian”

Who is online

Users browsing this forum: No registered users and 0 guests