VB 如何将一个二进制数组中的数据转化为字符串
问题如上所示,我举个例子如下现有一个二进制数组ByteData(1to10)里面的数值依次为804849505152535455,请问怎么将这个二进制数组转化为相应的字符...
问题如上所示,我举个例子如下
现有一个二进制数组ByteData(1 to 10) 里面的数值依次为 8 0 48 49 50 51 52 53 54 55 ,请问怎么将这个二进制数组转化为相应的字符串?最好给出代码哦
一楼的方法是可行的,我也会,但有个不好,遇到中文字符时会显示为??,请大家再帮帮忙,看能不能有什么内存操作的方法直接取得值呢? 展开
现有一个二进制数组ByteData(1 to 10) 里面的数值依次为 8 0 48 49 50 51 52 53 54 55 ,请问怎么将这个二进制数组转化为相应的字符串?最好给出代码哦
一楼的方法是可行的,我也会,但有个不好,遇到中文字符时会显示为??,请大家再帮帮忙,看能不能有什么内存操作的方法直接取得值呢? 展开
3个回答
展开全部
答案补充:中文啊,呵呵,好说,Chr改为ChrW就行了。
建一个Command1。
代码如下。
============
Dim bytesdata
Private Sub Command1_Click()
Dim i As Integer, s As String
bytesdata = Array(8, 0, 48, 49, 50, 51, 52, 53, 54, 55)
For i = LBound(bytesdata) To UBound(bytesdata)
s = s & ChrW(bytesdata(i))
Next
Print s
End Sub
建一个Command1。
代码如下。
============
Dim bytesdata
Private Sub Command1_Click()
Dim i As Integer, s As String
bytesdata = Array(8, 0, 48, 49, 50, 51, 52, 53, 54, 55)
For i = LBound(bytesdata) To UBound(bytesdata)
s = s & ChrW(bytesdata(i))
Next
Print s
End Sub
推荐于2016-08-14
展开全部
可以直接用函数实现;
参考实例如下:
Function bytes2BSTR(vIn)
strReturn = ""
For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
bytes2BSTR = strReturn
End Function
参考实例如下:
Function bytes2BSTR(vIn)
strReturn = ""
For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
bytes2BSTR = strReturn
End Function
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
注意字节值不能为0,适合单字节字符或双字节汉字:
Private Sub Command1_Click()
Dim sTemp As String
Dim yTemp(1 To 10) As Byte
yTemp(1) = &H8
yTemp(2) = &H1
yTemp(3) = &H48
yTemp(4) = &H49
yTemp(5) = &H50
yTemp(6) = &H51
yTemp(7) = &H52
yTemp(8) = &H53
yTemp(9) = &H54
yTemp(10) = &H55
sTemp = StrConv(yTemp, vbUnicode)
Text1 = sTemp
End Sub
Private Sub Command1_Click()
Dim sTemp As String
Dim yTemp(1 To 10) As Byte
yTemp(1) = &H8
yTemp(2) = &H1
yTemp(3) = &H48
yTemp(4) = &H49
yTemp(5) = &H50
yTemp(6) = &H51
yTemp(7) = &H52
yTemp(8) = &H53
yTemp(9) = &H54
yTemp(10) = &H55
sTemp = StrConv(yTemp, vbUnicode)
Text1 = sTemp
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询