如何对这段代码提速
''
' Convert binary stream to string with hexadecimal representation.
'
'@param value binary stream
'
'@return encoding string
Public Function BinaryToString(value() As Byte) As String
Dim s() As String
Dim i As Long
ReDim s(UBound(value))
For i = LBound(value) To UBound(value)
If value(i) > 15 Then
s(i) = Hex(value(i))
Else
s(i) = "0" & Hex(value(i))
End If
Next i
BinaryToString = "0x" & Join(s, "")
Erase s
End Function
''
' Convert hexadecimal representation string to binary stream.
'
'@param value string
'
'@return decoding stream
Public Function StringToBinary(ByVal value As String) As Byte()
Dim arr() As Byte
Dim i As Long
If Left(value, 2) <> "0x" Then
Err.Raise vbObjectError, , "not binary string."
End If
value = Right(value, Len(value) - 2)
ReDim arr(Len(value) / 2 - 1)
For i = LBound(arr) To UBound(arr)
arr(i) = CByte("&H" & Mid(value, i * 2 + 1, 2))
Next i
StringToBinary = arr
End Function
这两个函数主要是完成一个二进制数据到十六进制字符串的转换
可是对于1M的数据,耗时居然要20多s
有没有什么方法提速?
在用join之前,直接拼字符串,更是速度慢得难以忍受