这个好象只能解决一维数组,我改成二维数组它说地址族不支持,请看看该怎么写?
发送端:
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

解决方案 »

  1.   

    Option Explicit
    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
      

  2.   

    我的强项是复制,粘贴
    ctrl+c ,ctrl+v
      

  3.   

    发现我真笨,竟然转不回二维数组了,我是这样写的:
    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
    提示下标越界。
      

  4.   

    Option Explicit
    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
    没有问题啊。是你其他的处理的问题吧。我测试了
      

  5.   

    打出来是没有问题的,但我目的是要转回2维数组,如我楼上所写:
    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
    提示下标越界。
      

  6.   

    你看下标几越界
    要不你这样看看
    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
      

  7.   

    我这样打时:
    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
      

  8.   

    你看下标几越界
    要不你这样看看
    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
      

  9.   

    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
      

  10.   

    还是一样的那个地方d(i, j) = c(j)越界
      

  11.   

    终于找到了,Dim d(0 To 4, 0 To 4) As String
    这样定义就行,把 4 改小或把 0 改大就不行,不知为何。
      

  12.   

    Option Explicit
    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
    '没有问题啊?是你其他的处理的问题吧?我测试了
      

  13.   

    我有例子,我上不了qq和msn在公司,只能上csdn
      

  14.   

    真的啊,我邮箱是[email protected]
      

  15.   

    http://www.applevb.com/sourcecode/sdirectx.htm