vb Byte数据追加
Dim磁盘缓冲()AsByteDim数据()AsByte如何实现磁盘缓冲=磁盘缓冲+数据类型就1=1+2和在一起就是12我写了局域网文件传输,我想设置下数据到一定大小后写...
Dim 磁盘缓冲() As Byte
Dim 数据() As Byte
如何实现 磁盘缓冲=磁盘缓冲+数据
类型就 1=1+2
和在一起就是12
我写了局域网文件传输,我想设置下数据到一定大小后写入磁盘
在网上找了好久了没找到 展开
Dim 数据() As Byte
如何实现 磁盘缓冲=磁盘缓冲+数据
类型就 1=1+2
和在一起就是12
我写了局域网文件传输,我想设置下数据到一定大小后写入磁盘
在网上找了好久了没找到 展开
1个回答
展开全部
需要用到API 函数:CopyMemory.
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As Any, pSrc As Any, ByVal ByteLen As Long)
dim bytBuff() as byte '数据Buff
dim bytRec() as byte '接收数据的数组
dim bytTmp() as byte '临时数组
dim lngBuff as long 'Buff数组的长度
dim startIndex as long '记录Buff数组中开始的位置
dim lngRec as long '记录接收数据长度.
lngBuff=65536
redim bytBuff(lngBuff-1)
bytRec=收到的数据
if startIndex+ubound(bytRec)+1<lngBuff then
'检查Buff是否还有足够空间, 如果有则把数据加入Buff.
CopyMemory bytBuff(startIndex),bytRec(0),ubound(bytRec)+1
startIndex=startIndex+ubound(bytRec)+1
else
'Buff数据空间不足
redim bytTmp(startIndex-1)
CopyMemory bytTmp(0), bytBuff(0),startIndex '把数据copy到临时数组
'保存资料.
startIndex =0
CopyMemory bytBuff(startIndex),bytRec(0),ubound(bytRec)+1
startIndex=startIndex+ubound(bytRec)+1
end if
lngRec =lngRec +ubound(bytRec)+1 '记录数据接收长度
'检查资料是否完成
'如果接收的数据完成,则把Buff数据写入文件.
if lngRec =文件长度 then
redim bytTmp(startIndex-1)
CopyMemory bytTmp(0), bytBuff(0),startIndex '把数据copy到临时数组
'保存资料.
end if
更多追问追答
追问
CopyMemory UBound(磁盘缓冲), LBound(传输), UBound(传输)
这句VB为什么会停止工作?
追答
CopyMemory 目的数组地址,源数组地址, 复制的数据长度.
你的写法是错误的,应该写成
CopyMemory 磁盘缓冲(开始位置), 传输(开始位置), UBound(传输)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询