Lỗi hàm chuyển đổi từ bảng mã Unicode sang TCVN3 (1 người xem)

  • Thread starter Thread starter giaiphap
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

giaiphap

==(^o^)==
Tham gia
12/3/07
Bài viết
5,807
Được thích
6,367
Donate (Momo)
Donate
Giới tính
Nam
Các bác cho em hỏi vấn đề này. Không biết do lỗi gì mà trước kia mình viết hàm chuyển đổi từ Unicode sang TCVN3 chạy tương đối tốt nhưng không biết tự dưng hôm nay mở lên chạy thử thì nó lại sai hết (Mình đã tạo thành Add-Ins, và Add-Ins vẫn chạy đúng), lấy cái Add-Ins đó mở lên lại và lấy code từ Add-Ins đó vẫn chạy không đúng. Bác nào Test dùm mình thử xem lỗi gì? và nguyên nhân do đâu?
Mã:
Function UnitoTCVN(vnStr) As String
On Error Resume Next
   Dim sTemp$
   Dim c As String, i As Integer, L As Long, iC As Long
   For i = 1 To Len(vnStr)
      c = Mid(vnStr, i, 1)
      Select Case c
            Case ChrW$(272): c = ChrW$(167)
            Case ChrW$(259): c = ChrW$(168)
            Case ChrW$(226): c = ChrW$(169)
            Case ChrW$(234): c = ChrW$(170)
            Case ChrW$(244): c = ChrW$(171)
            Case ChrW$(417): c = ChrW$(172)
            Case ChrW$(432): c = ChrW$(173)
            Case ChrW$(273): c = ChrW$(174)
            Case ChrW$(224): c = ChrW$(181)
            Case ChrW$(7843): c = ChrW$(182)
            Case ChrW$(227): c = ChrW$(183)
            Case ChrW$(225): c = ChrW$(184)
            Case ChrW$(7841): c = ChrW$(185)
            Case ChrW$(7857): c = ChrW$(187)
            Case ChrW$(7859): c = ChrW$(188)
            Case ChrW$(7861): c = ChrW$(189)
            Case ChrW$(7855): c = ChrW$(190)
            Case ChrW$(7863): c = ChrW$(198)
            Case ChrW$(7847): c = ChrW$(199)
            Case ChrW$(7849): c = ChrW$(200)
            Case ChrW$(7851): c = ChrW$(201)
            Case ChrW$(7845): c = ChrW$(202)
            Case ChrW$(7853): c = ChrW$(203)
            Case ChrW$(232): c = ChrW$(204)
            Case ChrW$(7867): c = ChrW$(206)
            Case ChrW$(7869): c = ChrW$(207)
            Case ChrW$(233): c = ChrW$(208)
            Case ChrW$(7865): c = ChrW$(209)
            Case ChrW$(7873): c = ChrW$(210)
            Case ChrW$(7875): c = ChrW$(211)
            Case ChrW$(7877): c = ChrW$(212)
            Case ChrW$(7871): c = ChrW$(213)
            Case ChrW$(7879): c = ChrW$(214)
            Case ChrW$(236): c = ChrW$(215)
            Case ChrW$(7881): c = ChrW$(216)
            Case ChrW$(297): c = ChrW$(220)
            Case ChrW$(237): c = ChrW$(221)
            Case ChrW$(7883): c = ChrW$(222)
            Case ChrW$(242): c = ChrW$(223)
            Case ChrW$(7887): c = ChrW$(225)
            Case ChrW$(245): c = ChrW$(226)
            Case ChrW$(243): c = ChrW$(227)
            Case ChrW$(7885): c = ChrW$(228)
            Case ChrW$(7891): c = ChrW$(229)
            Case ChrW$(7893): c = ChrW$(230)
            Case ChrW$(7895): c = ChrW$(231)
            Case ChrW$(7889): c = ChrW$(232)
            Case ChrW$(7897): c = ChrW$(233)
            Case ChrW$(7901): c = ChrW$(234)
            Case ChrW$(7903): c = ChrW$(235)
            Case ChrW$(7905): c = ChrW$(236)
            Case ChrW$(7899): c = ChrW$(237)
            Case ChrW$(7907): c = ChrW$(238)
            Case ChrW$(249): c = ChrW$(239)
            Case ChrW$(7911): c = ChrW$(241)
            Case ChrW$(361): c = ChrW$(242)
            Case ChrW$(250): c = ChrW$(243)
            Case ChrW$(7909): c = ChrW$(244)
            Case ChrW$(7915): c = ChrW$(245)
            Case ChrW$(7917): c = ChrW$(246)
            Case ChrW$(7919): c = ChrW$(247)
            Case ChrW$(7913): c = ChrW$(248)
            Case ChrW$(7921): c = ChrW$(249)
            Case ChrW$(7923): c = ChrW$(250)
            Case ChrW$(7927): c = ChrW$(251)
            Case ChrW$(7929): c = ChrW$(252)
            Case ChrW$(253): c = ChrW$(253)
            Case ChrW$(7925): c = ChrW$(254)
            '----------------------------------------
            Case ChrW$(192): c = ChrW$(181)
            Case ChrW$(193): c = ChrW$(184)
            Case ChrW$(195): c = ChrW$(183)
            Case ChrW$(194): c = ChrW$(162)
            Case ChrW$(201): c = ChrW$(208)
            Case ChrW$(200): c = ChrW$(204)
            Case ChrW$(202): c = ChrW$(163)
            Case ChrW$(7878): c = ChrW$(214)
            Case ChrW$(204): c = ChrW$(215)
            Case ChrW$(211): c = ChrW$(227)
            Case ChrW$(210): c = ChrW$(223)
            Case ChrW$(212): c = ChrW$(164)
            Case ChrW$(213): c = ChrW$(226)
            Case ChrW$(218): c = ChrW$(243)
            Case ChrW$(221): c = ChrW$(253)
      End Select
      sTemp = sTemp + c
   Next i
   UnitoTCVN = sTemp
End Function
 
Lần chỉnh sửa cuối:
Các bác cho em hỏi vấn đề này. Không biết do lỗi gì mà trước kia mình viết hàm chuyển đổi từ Unicode sang TCVN3 chạy tương đối tốt nhưng không biết tự dưng hôm nay mở lên chạy thử thì nó lại sai hết (Mình đã tạo thành Add-Ins, và Add-Ins vẫn chạy đúng), lấy cái Add-Ins đó mở lên lại và lấy code từ Add-Ins đó vẫn chạy không đúng. Bác nào Test dùm mình thử xem lỗi gì? và nguyên nhân do đâu?
Tôi nghĩ là code trên chỉ hoạt động đúng với chuỗi đầu vào là chuỗi Unicode dựng sẵn, còn với đầu vào là chuỗi Unicode tổ hợp thì không được. Bạn thử kiểm tra lại xem có đúng như vậy không.
 
Upvote 0
Tôi nghĩ là code trên chỉ hoạt động đúng với chuỗi đầu vào là chuỗi Unicode dựng sẵn, còn với đầu vào là chuỗi Unicode tổ hợp thì không được. Bạn thử kiểm tra lại xem có đúng như vậy không.
À thì ra là vậy sơ xuất quá, do lấy văn bản từ file đã nhập sẳn nên không nhận ra. Cảm ơn bác nhiều nghe!
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom