Minh Tiên > 26-10-19, 11:29 AM
ongke0711 > 26-10-19, 12:08 PM
(26-10-19, 11:29 AM)Minh Tiên Đã viết: Chào cả nhà !
Sau 1 t/g mày mò mình phát hiện ra lỗi chuyển sai tập trung chủ yếu vào các chữ In hoa vì hàm dò tìm chữ In hoa ko thực hiện được, chỉ do được chữ thường.
Khắc phục: Khai báo có phân biệt chữ In và chữ thường.
Cụ thể: Thay Option Compare Database thành Option Compare Binary trong Module.
Mình đang dùng office 365 hoạt động OK, ko biết ACE dùng Office khác thế nào. Xin chia sẻ.
Thân./.
Minh Tiên > 26-10-19, 01:16 PM
(26-10-19, 12:08 PM)ongke0711 Đã viết:Vụ này Tiên đã nghĩ cách làm rồi, chỉ cần quy ngược lại theo Code trên thôi. Dò mãng s_DungSan trước => trong S_ToHop. Mình có bảng Index của 2 mãng là OK(26-10-19, 11:29 AM)Minh Tiên Đã viết: Chào cả nhà !Việc khắc phục đơn giản vậy mà mình không nghĩ ra.
Sau 1 t/g mày mò mình phát hiện ra lỗi chuyển sai tập trung chủ yếu vào các chữ In hoa vì hàm dò tìm chữ In hoa ko thực hiện được, chỉ do được chữ thường.
Khắc phục: Khai báo có phân biệt chữ In và chữ thường.
Cụ thể: Thay Option Compare Database thành Option Compare Binary trong Module.
Mình đang dùng office 365 hoạt động OK, ko biết ACE dùng Office khác thế nào. Xin chia sẻ.
Thân./.
Còn việc chuyển đổi từ Tổ hợp sang dựng sẳn thì tôi định làm như sau:
- Gõ toàn bộ các ký tự có dấu TV theo kiểu tổ hợp rồi đổi sang mã Hex. Đưa vào mảng tohop_bytes
- Gõ toàn bộ các ký tự có dấu TV theo kiểu dựng sẵn rồi đổi sang mã Hex. Đưa vào mảng dungsan_bytes
- Khi dò từ ký tự trong chuỗi, chuyển sang Hex (dùng AscW()) rồi đối chiếu vào mảng nào mình cần rồi đối chiếu với mảng kia, sau đó dùng hàm Chrw() để chuyển thành ký tự.
Minh Tiên > 26-10-19, 01:32 PM
ongke0711 > 26-10-19, 07:15 PM
(26-10-19, 01:32 PM)Minh Tiên Đã viết: Bảng Index theo code trên !
Bảng Index
Thân./.
Minh Tiên > 26-10-19, 08:13 PM
Public Function SourceToDest(ByVal text As String, source As convert_source, dest As convert_dest) As String
Dim s As String, Temp As String, kytu2 As String
Dim n As Long, index As Long, k As Long
Dim nr As Long
If source = dest And source <> src_uni Then
SourceToDest = text
Exit Function
End If
InitVietnameseStr
text = text & " "
s = ""
n = 1
k = Len(text)
While n < k
nr = 0
Select Case source
Case src_uni
kytu2 = Mid(text, n, 1)
If source = src_uni Then
index = InStr(1, s_dung_san, kytu2)
If index > 14 Then
nr = (2 * index - 15)
n = n + 1
Else
nr = InStr(1, s_dung_san, kytu2)
n = n + 1
End If
End If
End Select
If nr > 14 Then
Select Case dest
Case dst_uni: kytu2 = Mid(s_to_hop, nr, 2)
End Select
End If
s = s & kytu2
Wend
SourceToDest = s
End Function