我现在想在局域网内实现点对点的互发文件功能。我用的是winsock控件,用TCP协议。现在的问题是:我运行程序是回出现:“运行错误‘9’。下标越界。”这是怎么回事啊?
Private Sub sendfile_Click()
Dim myfile() As Byte
Dim position As Long'For i = 0 To Num
With CommonDialog1
.DialogTitle = "打开文件"
.InitDir = "E:\"
.Filter = "所有文件(*.*)|*.*"
.FilterIndex = 1
.ShowOpen Open .FileName For Binary As #1
End With
position = 0
ReDim Preserve myfile(1 To position)
Do While Not EOF(1) position = positon + 1 Get #1, , myfile(position) Loop Close #1
tcpServer(i).SendData "1" & myfile(position)
Textmsg.SelStart = Len(Textmsg.Text)
Textmsg.Text = Textmsg.Text + Chr(10) + "server:" + Textsend.Text
Textsend.Text = ""
End Sub
我这段代码有没有什么错误啊?
Private Sub sendfile_Click()
Dim myfile() As Byte
Dim position As Long'For i = 0 To Num
With CommonDialog1
.DialogTitle = "打开文件"
.InitDir = "E:\"
.Filter = "所有文件(*.*)|*.*"
.FilterIndex = 1
.ShowOpen Open .FileName For Binary As #1
End With
position = 0
ReDim Preserve myfile(1 To position)
Do While Not EOF(1) position = positon + 1 Get #1, , myfile(position) Loop Close #1
tcpServer(i).SendData "1" & myfile(position)
Textmsg.SelStart = Len(Textmsg.Text)
Textmsg.Text = Textmsg.Text + Chr(10) + "server:" + Textsend.Text
Textsend.Text = ""
End Sub
我这段代码有没有什么错误啊?
ReDim Preserve myfile(1 To position) 这两句连在一起,相当于只 ReDim Preserve myfile(1 To 0)
ReDim Preserve myfile(1 To Lof(1))
Do While Not EOF(1) position = positon + 1 Get #1, , myfile(position) Loop
放在 ”position = positon + 1 “后面,行不行的 啊?
position = 0
ReDim Preserve myfile(1 To position)
Do While Not EOF(1) position = positon + 1 Get #1, , myfile(position) Loop
-------
改为position=0
ReDim Preserve myfile(1 To Lof(1))
Get #1,, myfile