gpt4 book ai didi

VBScript:查找数组中非空元素的数量

转载 作者:行者123 更新时间:2023-12-04 17:19:28 25 4
gpt4 key购买 nike

在 VBScript 中确定数组中元素数量的“最佳”方法是什么?

UBound() 会告诉您已为数组分配了多少个槽位,但不会告诉您填充了多少个槽位——取决于具体情况,这些数字可能相同也可能不同。

最佳答案

首先,没有预定义的标识符称为 vbUndefined,正如当前接受的答案似乎暗示的那样。该代码仅在脚本顶部没有 Option Explicit 时才有效。如果您还没有使用 Option Explicit,那么就开始使用吧,它会让您省去所有的麻烦。

您可以用来代替 vbUndefined 的值是 Empty,例如:-

If arr(x) = Empty Then ...

Empty 是预定义的标识,是尚未分配值的变量或数组元素的默认值。

但是有一些问题需要注意。以下语句均显示为真:-

MsgBox 0 = Empty
MsgBox "" = Empty
MsgBox CDate("30 Dec 1899") = True

因此,如果您希望这些值中的任何一个是数组元素的有效定义值,那么与 Empty 进行比较不会削减它。

如果您真的想确定该元素是真正“未定义”的“空”元素,请使用 IsEmpty 函数:-

If IsEmpty(arr(x)) Then

IsEmpty 仅当参数实际上正确地为 Empty 时才返回 true。

还有一个问题,Null 是一个可能的值,可以保存在数组或变量中。然而:-

MsgBox Null = Empty

是一个运行时错误,“null 的无效使用”和:-

MsgBox IsEmpty(Null)

是错误的。因此,您需要确定 Null 是表示未定义还是有效值。如果 Null 也意味着未定义,你需要你的 If 语句看起来像:-

 If IsEmpty(arr(x)) Or IsNull(arr(x)) Then ....

如果您知道永远不会将 Null 分配到数组中,您可以放弃此操作。

关于VBScript:查找数组中非空元素的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1138842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com