gpt4 book ai didi

arrays - vb6 数组,上限为 -1

转载 作者:行者123 更新时间:2023-12-02 06:20:46 31 4
gpt4 key购买 nike

一些函数,例如 Split() 将返回一个数组,如果数组没有项,则返回 -1 为上限,0 为下限,例如:

Dim s() As String
s = Split("", ",")
Debug.Print UBound(s)
Debug.Pring LBound(s)

在这种情况下,UBound(s) 将等于 -1,LBound(s) 将等于 0。我有大量代码检查上限是否为 -1,以查看数组是否有值。这很好用。

问题是我现在想将数组数据类型从字符串更改为长整型。我似乎无法创建一个上限为 -1 、下限为 0 的 long 数组,并且 Split()Join() 函数只能在字符串数组。

我希望能够返回一个上限为 -1 的长数组。这可能吗?

最佳答案

我不认为你可以在 VB6 中自行完成它。但是,如果您愿意使用Windows API函数SafeArrayCreateVector你可以做到:

Private Declare Function LongSplitEmulator Lib "OLEAUT32.DLL" Alias "SafeArrayCreateVector" _
(Optional ByVal vt As VbVarType = vbLong, _
Optional ByVal low As Long = 0, _
Optional ByVal count As Long = 0) As Long()

Dim a() As Long
a = LongSplitEmulator()
MsgBox UBound(a)

如果您需要对其他数据类型执行此操作,可以更改 vt 参数。

请注意,我想我最初是从 Vi2 对此问题的回答 discussion 中发现这一点的。 .

关于arrays - vb6 数组,上限为 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7099352/

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