vb中如何从一个数组中截取指定长度的数据?
是这样的,我用winsock控件接收HTTP上传来的文件,数据类型设为byteDimDataRecByte()AsBytewinsock1.GetDataDataRecB...
是这样的,我用 winsock控件接收HTTP上传来的文件,数据类型设为byte
Dim DataRecByte() As Byte
winsock1.GetData DataRecByte
那么,在接收到的DataRecByte中,就包含了HTTP头信息,其中有文件长度的定义,现在可以提取出这些头信息了,但问题是,剩下的部分就是文件内容了,这部分该如何截取呢?
它们和HTTP头都在一个DataRecByte数组里面。如何分割? 展开
Dim DataRecByte() As Byte
winsock1.GetData DataRecByte
那么,在接收到的DataRecByte中,就包含了HTTP头信息,其中有文件长度的定义,现在可以提取出这些头信息了,但问题是,剩下的部分就是文件内容了,这部分该如何截取呢?
它们和HTTP头都在一个DataRecByte数组里面。如何分割? 展开
展开全部
你先把它转为字符串,处理起来就简单了。 用 Split 函数分割。
追问
如果是接收文本文件,转字符串可以处理,但是如果接收的是图片或其它非文本文件,用字符串方式处理会变成乱码.
追答
如果是处理二进制数据的话,在 VB.net 中可以用 Array.Copy 从 Byte() 中截取特定部分产生新的 Byte()。如果是 VB6 的话,还是循环取值吧。用 CopyMem 操作起来有一定风险。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用copymemory
追问
试过这个,但返回的文件打开后仍是乱码.
另,winsock1.GetData Dbyte
用len(Dbyte)返回的长度和下面的
UBound(Dbyte) - LBound(Dbyte) + 1 返回的长度
两个长度不一样,不知是否正常?
追答
改成lenb(Dbyte)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询