如何实现像C语言一样表链接类似的问题,C是用指针实现,而VB没有指针操作该如何实现呢

解决方案 »

  1.   

    http://www.chenoe.com/blog/blogview.asp?logID=2038
    http://rainstormmaster.cnblogs.com/archive/2006/01/09/313880.html
      

  2.   

    自己收集别人写的,你看是不是,
      作者就是CSDN上面的高手
     VB中对string array快速插入、删除某个元素的办法 
    Option Explicit
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (dest As Any, source As Any, ByVal numBytes As Long)
    Private Sub InsertStringItem(strArr() As String, ByVal index As Long, ByVal newItem As String)
        Dim lastItem As Long, saveAddr As Long
        lastItem = UBound(strArr)
        saveAddr = StrPtr(strArr(lastItem))
        CopyMemory ByVal VarPtr(strArr(index + 1)), ByVal VarPtr(strArr(index)), (lastItem - index) * 4
        CopyMemory ByVal VarPtr(strArr(index)), saveAddr, 4
        strArr(index) = newItem
    End Sub
    Private Sub DeleteStringItem(strArr() As String, ByVal index As Long)
        Dim lastItem As Long, saveAddr As Long
        lastItem = UBound(strArr)
        saveAddr = StrPtr(strArr(index))
        CopyMemory ByVal VarPtr(strArr(index)), ByVal VarPtr(strArr(index + 1)), (lastItem - index) * 4
        CopyMemory ByVal VarPtr(strArr(lastItem)), saveAddr, 4
        strArr(lastItem) = vbNullString
    End SubPrivate Sub Command1_Click()
        Dim Archives() As String
        ReDim Archives(0 To 3)
        Archives(0) = "abc"
        Archives(1) = "xxx"
        Archives(2) = "asdfsd"
        Archives(3) = "xxx"
        DeleteStringItem Archives, 1 '删除Archives(1)
        '测试输出
        Dim i As Long
        For i = 0 To UBound(Archives)
            Debug.Print Archives(i)
        Next
    End SubPrivate Sub Command2_Click()
        Dim Archives() As String
        ReDim Archives(0 To 3)
        Archives(0) = "abc"
        Archives(1) = "xxx"
        Archives(2) = "asdfsd"
        Archives(3) = "xxx"
        InsertStringItem Archives, 2, "加入的数据" '插入Archives(2)="加入的数据"
        '测试输出
        Dim i As Long
        For i = 0 To UBound(Archives)
            Debug.Print Archives(i)
        Next
    End Sub
      

  3.   

    ZOU_SEAFARER(国际海员) 给出的代码是我写的,这是有问题的版本,后来我修改了一下,还是看
    http://rainstormmaster.cnblogs.com/archive/2006/01/09/313880.html吧