要实现把二进制图片数据转可以跟字符合并的字符数据,从网上找了段代码,他会把有些ASC码大于127(象16进值D5)的字节数据丢掉,各位高手,帮忙啊,怎么解决啊?我找的二进制转字符函数如下:
Private Function BinaryToString1(ByVal BinaryStr As Variant) As String
Dim lnglen As Long
Dim tmpBin As Variant
Dim strC As String
Dim skipflag As Long
Dim i As Long
skipflag = 0
strC = ""
If Not IsNull(BinaryStr) Then
lnglen = LenB(BinaryStr)
For i = 1 To lnglen
If skipflag = 0 Then
tmpBin = MidB(BinaryStr, i, 1)
If AscB(tmpBin) > 127 Then
strC = strC & Chr(AscW(MidB(BinaryStr, i + 1, 1) & tmpBin))
skipflag = 1
Else
strC = strC & Chr(AscB(tmpBin))
End If
Else
skipflag = 0
End If
Next
End If
BinaryToString = strC
End Function
Private Function BinaryToString1(ByVal BinaryStr As Variant) As String
Dim lnglen As Long
Dim tmpBin As Variant
Dim strC As String
Dim skipflag As Long
Dim i As Long
skipflag = 0
strC = ""
If Not IsNull(BinaryStr) Then
lnglen = LenB(BinaryStr)
For i = 1 To lnglen
If skipflag = 0 Then
tmpBin = MidB(BinaryStr, i, 1)
If AscB(tmpBin) > 127 Then
strC = strC & Chr(AscW(MidB(BinaryStr, i + 1, 1) & tmpBin))
skipflag = 1
Else
strC = strC & Chr(AscB(tmpBin))
End If
Else
skipflag = 0
End If
Next
End If
BinaryToString = strC
End Function
2、memorycopy,把数组拷贝到字符串变量去。
3、用strconv
一个例子:
Dim i As Integer
Dim aryTmp(26) As Byte
Dim strTmp As String
'生成一个字节数组
For i = 97 To 122
aryTmp(i - 97) = i
Next
strTmp = StrConv(aryTmp, vbUnicode)
Debug.Print strTmp不过再怎么折腾127以上的东西你都显示不出来