召唤高人,求字符串算法
以下过程分别将字符串转成UNICODE代码,和逆算。
示例:
转换
字符串“召唤”————得到“53EC5524”
逆算
UNICODE代码“53EC5524”————字符串“召唤”
'将数据转成 UNICODE
Function Conv(KeyStr As String) As String
Dim Temp() As String, i As Long
Conv = ""
On Error Resume Next
ReDim Temp(Len(KeyStr) / 4 - 1)
For i = 0 To (Len(KeyStr) / 4) - 1
DoEvents
Temp(i) = Mid(KeyStr, 1 + 4 * i, 4)
Temp(i) = ChrW("&H" & Temp(i))
Conv = Conv & Temp(i)
Next
End Function
'将UNICODE 转成 数据
Public Function ConvUni(Str As String) As String
Dim a1 As String
Dim StrX As String, Intnums As Long, Stry As String
StrX = Str
For Intnums = 1 To Len(StrX)
DoEvents
a1 = Hex(AscW(Mid(StrX, Intnums, 1)))
If Len(a1) = 4 Then
Stry = Stry & a1
ElseIf a1 = "D" Or a1 = "A" Then
a1 = "000" & a1
Stry = Stry & a1
ElseIf Len(a1) = 2 Then
a1 = "00" & a1
Stry = Stry & a1
End If
Next Intnums
ConvUni = Stry
End Function
现在由于转换的数据量比较大,在转换 100K 数据的时候,要2分钟,求高人给出优化的代码。
可以用 API。
期待高人显身.........