VB中数组的各种常见应用

翻译|其它|编辑:郝浩|2005-10-19 09:27:00.000|阅读 4632 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>


vb6中,数组是一种常见的数据结构,它的用法灵活多变,下文列举的方法请大家熟记:

1.定义常见类型定长数组

例:

Dim strArr01(9) As String或者Dim strArr01(0 to 9) As String 刚才定义了一个10个成员的字符类型数组.
接下来就可以对其进行操作了.

存:
   For i = 0 To 9
      strArr01(i) = CStr(i * i)
   Next i
取:
   For i = 0 To 9
       Debug.Print "No." + CStr(i) + "=" + strArr01(i)
   Next i

2.定义自定义类型数组


常见类型不能满足我们对程序的要求时,我们可以使用自定义类型,如下:

Type TYPE_02
sn As Integer
concept As String
End Type
这个自定义类型一般放在模块的顶端

对于自定义类型数组的存取如下:
定义:
Dim arr02(0 To 9) As TYPE_02

存:
    For i = 0 To 9
        arr02(i).sn = i
        arr02(i).concept = CStr(i * i)
    Next i
取:
    For i = 0 To 9
        Debug.Print "No." + CStr(arr02(i).sn) + "=" + arr02(i).concept
    Next i
大家可以看到,数组元素的存取和TYPE_02实例的存取方式是一致的。


3.变长数组

有时数组的长度在程序编译期才能知道,这个时候需要使用变长数组:
定义:
Dim strArr02() As String

重定义数组长度并赋值:
ReDim strArr02(10)
      For i = 0 To 10
        strArr02(i) = CStr(i)
      Next i

ReDim strArr02(100)
      For i = 0 To 100
          strArr02(i) = CStr(i * i)
      Next i

如果在ReDim前后进行端点跟踪,你会发现ReDim后原来设置的值返回初始值了,如果
需要保留原来的值又要扩充数组长度的话可以如下处理:
ReDim Preserve strArr02(200)
      For i = 101 To 200
      strArr02(i) = CStr(2 * i)
Next i

这样ReDim后原来的值就不会丢失了.

4.求数组长度函数-Ubound函数

有时我们不想知道或者不能知道数组的长度,这时就需要请出Ubound函数函数来帮
忙了,使用它我们可以方便的知道一个数组的当前长度,代码如下:

For i = 0 To UBound(strArr02)
    strArr02(i) = CStr(i * 3)
Next i

即使能明确知道数组长度,为了保持程序的可维护性我们也应该如上书写。切记
当求多维数组边界需要加维度参数,代码如下:

Dim MyArray(1 To 10, 5 To 15, 10 To 20)
Upper = UBound(MyArray, 1) ' 求数组第一维长度,返回10.
Upper = UBound(MyArray, 3) ' 求数组第一维长度,返回20.


5.数组和Split函数的结合

Split函数常用来以某个字符串来劈分另一个字符串,它的返回值是一个数组,用法
如下:

Dim strTmp As String
strTmp = "aaa.bbb.dddd.fgfggh" '// 这里是待劈分字符串

Dim strArr03() As String
strArr03 = Split(strTmp, ".") '// 劈分处

For i = 0 To UBound(strArr03)
Debug.Print "No." + CStr(i) + "=" + strArr03(i)
Next i

输出结果如下:
No.0=aaa
No.1=bbb
No.2=dddd
No.3=fgfggh

这种用法用来分析命令行参数非常高效.

strArr03可以多次使用,不用再重新定义,代码如下:
strTmp = "1.2.3.4"
strArr03 = Split(strTmp, ".")

For i = 0 To UBound(strArr03)
Debug.Print "No." + CStr(i) + "=" + strArr03(i)
Next i

输出结果如下:
No.0=1
No.1=2
No.2=3
No.3=4

熟悉C语言的同志可以猜想一下VB的数组和Split函数的原理和机制到底是什么.


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP