这个好象只能解决一维数组,我改成二维数组它说地址族不支持,请看看该怎么写?
发送端:
Dim B(1, 1) As String
Private Sub Form_Load()Winsock1.RemotePort = 1001
B(0, 0) = "a": B(1, 1) = "c"
B(1, 0) = "b": B(0, 1) = "d"
End Sub
Private Sub Command1_Click()
Winsock1.SendData setArr(B)
End Sub
'传送时的函数
Public Function setArr(A() As String) As String
Dim temp As String
Dim i, j As Integer
For i = 0 To 1
For j = 0 To 1
temp = temp & A(i, j) & "(_)()_&"
Next
Next
setArr = temp
End Function
接收端:
Option ExplicitPrivate Sub Form_Load()
Winsock1.LocalPort = 1001
Winsock1.Bind
End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim b(1, 1) As String
Dim st As String
Winsock1.GetData st, vbString
b = GetArr(st)
For i = 0 To 1
For j = 0 To 1
Text1.Text = Text1.Text & b(i, j)
Next
Next
End Sub
'接受时的函数
Public Function GetArr(a As String) As String()
Dim temp() As String
temp = Split(a, "(_)()_&")
GetArr = temp
End Function
发送端:
Dim B(1, 1) As String
Private Sub Form_Load()Winsock1.RemotePort = 1001
B(0, 0) = "a": B(1, 1) = "c"
B(1, 0) = "b": B(0, 1) = "d"
End Sub
Private Sub Command1_Click()
Winsock1.SendData setArr(B)
End Sub
'传送时的函数
Public Function setArr(A() As String) As String
Dim temp As String
Dim i, j As Integer
For i = 0 To 1
For j = 0 To 1
temp = temp & A(i, j) & "(_)()_&"
Next
Next
setArr = temp
End Function
接收端:
Option ExplicitPrivate Sub Form_Load()
Winsock1.LocalPort = 1001
Winsock1.Bind
End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim b(1, 1) As String
Dim st As String
Winsock1.GetData st, vbString
b = GetArr(st)
For i = 0 To 1
For j = 0 To 1
Text1.Text = Text1.Text & b(i, j)
Next
Next
End Sub
'接受时的函数
Public Function GetArr(a As String) As String()
Dim temp() As String
temp = Split(a, "(_)()_&")
GetArr = temp
End Function
Dim b(1, 1) As String
Private Sub Form_Load()Winsock1.RemotePort = 1001
b(0, 0) = "a": b(1, 1) = "c"
b(1, 0) = "b": b(0, 1) = "d"
End Sub
Private Sub Command1_Click()
Winsock1.SendData setArr(b)
End Sub
'传送时的函数
Public Function setArr(a() As String) As String
Dim temp As String
Dim i, j As Integer
For i = 0 To 1
For j = 0 To 1
temp = temp & a(i, j) & "(_)()_&"
Next
temp = temp & "#!@$!!#$$^&%%^"
Next
setArr = temp
End Function
接收端:
Option ExplicitPrivate Sub Form_Load()
Winsock1.LocalPort = 1001
Winsock1.Bind
End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim b() As String
Dim c() As String
Dim i As Integer
Dim j As Integer
Dim st As String
Winsock1.GetData st, vbString
b = GetArr(st)
For i = 0 To UBound(b)
c = GetArrFill(b(i))
For j = 0 To UBound(c)
text1.Text = c(j)
Next
NextEnd Sub
'接受时的函数
Public Function GetArr(a As String) As String()
Dim temp() As String
temp = Split(a, "(_)()_&")
GetArr = temp
End Function
Public Function GetArrFill(a As String) As String()
Dim temp() As String
temp = Split(a, "#!@$!!#$$^&%%^")
GetArrFill = temp
End Function
ctrl+c ,ctrl+v
Dim d(0 To 1, 0 To 1) As String
For i = 0 To UBound(b)
c = GetArrFill(b(i))
For j = 0 To UBound(c)
Print c(j)
e = c(j)
d(i, j) = e
Next
Next
提示下标越界。
Dim b(1, 1) As String
Private Sub Form_Load()
Winsock1.RemoteHost = "127.0.0.1"
Winsock1.RemotePort = 1001
b(0, 0) = "a": b(1, 1) = "c"
b(1, 0) = "b": b(0, 1) = "d"
End Sub
Private Sub Command1_Click()
Winsock1.SendData setArr(b)
End Sub
'传送时的函数
Public Function setArr(a() As String) As String
Dim temp As String
Dim i, j As Integer
For i = 0 To 1
For j = 0 To 1
temp = temp & a(i, j) & "(_)()_&"
Next
temp = temp & "#!@$!!#$$^&%%^"
Next
setArr = temp
End Function'接收端:
Option ExplicitPrivate Sub Form_Load()
Winsock1.LocalPort = 1001
Winsock1.Bind
End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim b() As String
Dim c() As String
Dim i As Integer
Dim j As Integer
Dim st As String
Winsock1.GetData st, vbString
b = GetArr(st)
For i = 0 To UBound(b)
c = GetArrFill(b(i))
For j = 0 To UBound(c)
Text1.Text = Text1 & c(j) & " "
Next
NextEnd Sub
'接受时的函数
Public Function GetArr(a As String) As String()
Dim temp() As String
temp = Split(a, "(_)()_&")
GetArr = temp
End Function
Public Function GetArrFill(a As String) As String()
Dim temp() As String
temp = Split(a, "#!@$!!#$$^&%%^")
GetArrFill = temp
End Function
没有问题啊。是你其他的处理的问题吧。我测试了
Dim d(0 To 1, 0 To 1) As String
For i = 0 To UBound(b)
c = GetArrFill(b(i))
For j = 0 To UBound(c)
d(i, j) = c(j)
Next
Next
提示下标越界。
要不你这样看看
Dim d(0 To 1, 0 To 1) As String
For i = 0 To UBound(b)-1
c = GetArrFill(b(i))
For j = 0 To UBound(c)-1
d(i, j) = c(j)
Next
Next
For i = 0 To UBound(b)
c = GetArrFill(b(i))
For j = 0 To UBound(c)
Print c(j)
e = c(j)
d(i, j) = e
Next
Next
提示d(i,j)越界,但form打出了b(0, 0) 和 b(0, 1) 的两个字符:a和d
要不你这样看看
Dim d(0 To 1, 0 To 1) As String
For i = 0 To UBound(b)-1
c = GetArrFill(b(i))
For j = 0 To UBound(c)-1
d(i, j) = c(j)
Next
Next
For i = 0 To UBound(b)-1'这里这样写
c = GetArrFill(b(i))
For j = 0 To UBound(c)-1'这里这样写
d(i, j) = c(j)
Next
Next
这样定义就行,把 4 改小或把 0 改大就不行,不知为何。
Dim b(1, 1) As String
Private Sub Form_Load()
Winsock1.RemoteHost = "127.0.0.1"
Winsock1.RemotePort = 1001
b(0, 0) = "a": b(1, 1) = "c"
b(1, 0) = "b": b(0, 1) = "d"
End Sub
Private Sub Command1_Click()
Winsock1.SendData setArr(b)
End Sub
'传送时的函数
Public Function setArr(a() As String) As String
Dim temp As String
Dim i, j As Integer
For i = 0 To 1
For j = 0 To 1
temp = temp & a(i, j) & "(_)()_&"
Next
temp = temp & "#!@$!!#$$^&%%^"
Next
setArr = temp
End Function'接收端:
Option Explicit
Dim cl(1, 1) As StringPrivate Sub Form_Load()
Winsock1.LocalPort = 1001
Winsock1.Bind
End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim b() As String
Dim c() As String
Dim i As Integer
Dim j As Integer
Dim st As String
Winsock1.GetData st, vbString
b = GetArrFill(st)
For i = 0 To UBound(b) - 1
c = GetArr(b(i))
For j = 0 To UBound(c) - 1
Text1.Text = Text1 & c(j) & " "
cl(i, j) = c(j)
Next
NextEnd Sub
'接受时的函数
Public Function GetArr(a As String) As String()
Dim temp() As String
temp = Split(a, "(_)()_&")
GetArr = temp
End Function
Public Function GetArrFill(a As String) As String()
Dim temp() As String
temp = Split(a, "#!@$!!#$$^&%%^")
GetArrFill = temp
End Function
'没有问题啊?是你其他的处理的问题吧?我测试了