各位高手,求救啊!关于VB二进制图片数据转可以跟字符合并的算法问题
要实现把二进制图片数据转可以跟字符合并的字符数据,从网上找了段代码,他会把有些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 --------------------编程问答-------------------- 1、你把图片保存以后,把扩展名改成txt不就OK了,用文本编辑器打开
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以上的东西你都显示不出来 --------------------编程问答-------------------- 高手,我用你的三种方法都不行,你可以把图片数据转换后的内容读出来再比较跟以前的二进制与ASC码的异同,督不行,改后数据被改了,第一种大于127的字节数据有的没丢,但是为0的全丢,有的不为0的也会丢,会少很多数据,用第二种,VB自动关闭,用第三种,我上面那个转换函数丢的字节数据,他也会丢
高手,怎么办? --------------------编程问答-------------------- 将每个字节用Hex转成16进制,不足两个字符的前面添0,这样全部为可视字符。
--------------------编程问答-------------------- 直白的说你这么做到底是为了什么吧。可能你的方向都不对 --------------------编程问答-------------------- 我是要用VB的INET控件提交带图片上传的表单,所以要把图片数据跟其他内容一起提交,一起传给WEB服务器,其他内容为字符型的,INET也只能传字符数据,我试过,用二进制对方收到数据也发不了贴 --------------------编程问答-------------------- 看看表单格式如何定义就行了。应该约定怎么表示图片数据以及数据的格式。 --------------------编程问答-------------------- 表单格式我知道,格式没搞错,就是图片数据要转成可以跟字符合并的字符数据,才能一起发过去 --------------------编程问答--------------------
补充:VB , 基础类