如果我在25个数组的数组中声明5个值,我如何在VB脚本中找到数组的已用大小?

时间:2014-04-12 07:31:57

标签: vbscript qtp

dim a(100)
a(0)=9,a(1)=3,a(2)=-3,a(3)=8,a(4)=2

我怎样才能找到所用数组的大小(即使用的大小是5

2 个答案:

答案 0 :(得分:2)

你必须计算非空元素:

Option Explicit

Function UsedElms(a)
  UsedElms = 0
  Dim i
  For i = 0 To UBound(a)
      If Not IsEmpty(a(i)) Then UsedElms = UsedElms + 1
  Next
End Function

Dim a(5)
a(2) = 2
a(4) = 4
WScript.Echo "ub:", UBound(a), "sz:", UBound(a) + 1, "us:", UsedElms(a)

输出:

cscript 23027576.vbs
ub: 5 sz: 6 us: 2

答案 1 :(得分:0)

这是我刚刚想到的一个hacky单行。它基本上通过将空元素转换为空格然后将它们修剪掉来计算空元素的数量。

intLastIndex = UBound(a) - Len(Join(a, " ")) + Len(Trim(Join(a, " ")))

只为了好玩!不要把它放入你的生产代码中。作为两个班轮肯定会更有效率:

s = Join(a, " ")
intLastIndex = UBound(a) - Len(s) + Len(Trim(s))
但是,Ekkehard在这里有正确的答案。只有在连续填充数组时,此hack才有效。