帮我看下35600索引超出边界

dyron 2007-04-08 05:20:16
帮我看下这里写错了什么,总是35600索引超出边界,数据不能显示完全,排序不连贯,帮我看下,谢谢


Private Sub Command11_Click()
Dim filename
If Winsock1(ListView1.SelectedItem.Index).State <> sckClosed Then
filename = InputBox("请选择本地文件名")
If filename = "" Then
MsgBox "请输入文件名"
GoTo exi:
End If
Dim FreeF As Integer
Dim LenFile As Long '文件的长度
Dim bytData() As Byte '存放数据的数组
Dim ipos As Long
Const imax = 65535
FreeF = FreeFile '获得空闲的文件号
Open filename For Binary As #FreeF '打开文件
DoEvents
LenFile = LOF(FreeF) '获得文件长度
If LenFile <= imax Then '如果要发送的文件小于数据块大小,直接发送
ReDim bytData(1 To LenFile) '根据文件长度重新定义数组大小
Get #FreeF, , bytData '把文件读入到数组里
Close #FreeF '关闭文件
Winsock1(ListView1.SelectedItem.Index).SendData bytData '发送数据
Exit Sub
End If
'文件大于数据块大小,进行分块发送
Do Until (ipos >= (LenFile - imax)) '发送整块数据的循环
ReDim bytData(1 To imax)
Get #FreeF, ipos + 1, bytData
Winsock1(ListView1.SelectedItem.Index).SendData bytData
ipos = ipos + imax '移动iPos,使它指向下来要读的数据
Loop
'这里要注意的是,必须检查文件有没有剩下的数据,如果文件大小正好等于数据块大小的
' 整数倍,那么就没有剩下的数据了
ReDim bytData(1 To LenFile - ipos) '发送剩下的不够一个数据块的数据
Get #FreeF, ipos + 1, bytData
Winsock1(ListView1.SelectedItem.Index).SendData bytData
Close #FreeF
End If
exi:
End Sub
...全文
512 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinaren10101 2007-04-12
  • 打赏
  • 举报
回复
索引超出边界,是索引值的问题,你把你的索引值的最大和最小值减1,试试。另外看看下面的问题,或许能够有所启示。
http://topic.csdn.net/t/20050303/12/3821009.html#
http://topic.csdn.net/t/20020813/15/937192.html
http://zhidao.baidu.com/question/5138262.html
dyron 2007-04-12
  • 打赏
  • 举报
回复
非常感谢楼上几位的回贴,但是Dim FreeF As Long 改了还是不正确。楼上你说的修改哪呢?
iamtsfw 2007-04-11
  • 打赏
  • 举报
回复
索引超出边界,应该是与数组操作有关系,我估计是存取数组元素时发生了问题
例如:
dim arrX(0 to 1) as long
如果arrx(2)=100就会说索引超出边界
如果debug.print arrx(2)也会说索引超出边界




zdingyun 2007-04-11
  • 打赏
  • 举报
回复
Dim FreeF As Long
dyron 2007-04-11
  • 打赏
  • 举报
回复
顶一下,帮帮忙啊,给分都没有办法给
pzlk 2007-04-09
  • 打赏
  • 举报
回复
超过了数组元素的最大范围
我试过vb的数组最大能包含3万多个元素好象
lzhzxl 2007-04-09
  • 打赏
  • 举报
回复
没做过WINSOCK传送文件的,帮顶

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧