我要保存大量的,不定数量的结构类型的信息,
如果是使用C,我就会使用链表,不知道VB怎么来实现?听说VB的数组是可变长度的,不知道怎么做的谢谢(刚刚尝到VB快速开发的甜头,却发现)

解决方案 »

  1.   

    dim arr() as yourtype
    .
    .
    .
    .
    .
    redim arr(n)
      

  2.   

    经过测试,redim会把数组的内容清空
      Dim lArr() As Long
      
      ReDim lArr(5)
      For i = 0 To 4
      lArr(i) = i
      Next i
      ReDim lArr(8)
      lArr(5) = lArr(0)
      lArr(6) = lArr(3)
      lArr(7) = lArr(4)
    现在lArr的8个值都是0了
    什么变长啊,都是骗人的
      

  3.   

    的确要看看书,我学VB是半路出家,没有系统学习过
    高一的时候学过BASIC,呵呵
      

  4.   

    数组我应该搞定了,使用数组也可以完成我要的效果,只是不知道效率如何。我的第一个问题有没有人会啊?
    用VB怎么做链表?
    如何表示指针变量?如果根据指针变量取得内容?
    如果VB连这个都做不了,如何实现更复杂的数据结构啊?
      

  5.   

    http://www.csdn.net/Develop/Read_Article.asp?Id=16430
    循环链表以及相关操作(VB实现)
      

  6.   

    先告诉你 VB 数组变长要加 Preserve 才会保留数据,不要还没有弄清楚就乱骂 VB。Dim MyArr(n) As IntegerRedim Preserve MyArr(m)至于链表,我的方法是这样,仿照 C 的方法先定义一个类型Type LinkTable
      Data As ...
      NextIndex As Long
    End Type然后建立一个数组用来放数据:Dim LinkedData(...) As LinkTable然后你就像 C 一样的用嘛,NextIndex 里面不要放地址指针,放数据的下标索引不就可以了?效果差不多的,就是代码看起来没有 C 那么爽而已!
      

  7.   

    忘了说,VB 里声明数组:Dim MyArr(8) As Integer事实上定义了 9 个变量,你可以自己试试,从 MyArr(0) 到 MyArr(8)。
      

  8.   

    谢谢两位,尤其richardbao(Richard Bao)的算法比较妙,
    只是有点古怪
    呵呵
      

  9.   

    突然想到一个问题,如果我想删除(richardbao(Richard Bao)谈到的)链表的中间的某个变量,不知道VB能否释放内存?
      

  10.   

    不行的,VB的数组如果缩短,只能去除最后的元素。我是老早做的 VB 链表,现在早忘了,源码也没有了,但是我当时好像是这么干的:把元素 0 空出来做链表头,如果某元素的索引指向 0 元素,就说明这个元素是空的,可以放数据,如果不是指向 0,说明已经被使用。我当时专门有一个函数用来返回数组中第一个可以使用的元素变量。总体效果还是差不多的,至少我认为。