使用VB6.0查找数组索引

Posted

技术标签:

【中文标题】使用VB6.0查找数组索引【英文标题】:Finding Array index using VB6.0 【发布时间】:2014-12-19 07:33:46 【问题描述】:

我正在尝试使用 Visual Basic 找出数组索引。我用 VB.Net 尝试了一些代码并获得了正确的输出。下面是我正在使用的代码,

Dim FindThisString as String="EFGH"
Dim MyArray() As String="ABCD","EFGH","IJKLM"
For Each Str As String In MyArray
If Str.Contains(FindThisString) Then
    MsgBox(Str.IndexOf(FindThisString))
End If 
Next

现在我想用 VB 6.0 尝试同样的方法。我正在使用 Instr 函数,但它给了我整个字符串中的字符串索引,我正在寻找数组索引,即 MyArray 中字符串“EFGH”的索引。

这是我正在尝试的 VB6 代码:

Dim MyString as String 
Dim str as Variant 
MyString="ABCD/EFGH/IJKLM" 
Dim MyArray() as String 
MyArray = split(MyString,"/") 
Dim inIndex as Integer 
For Each Str In MyArray 
   inIndex= Instr(str,"EFGH") 
   MsgBox inIndex 
Next

【问题讨论】:

也向我们展示您的 VB6 代码。您还必须在 VB6 中遍历数组。 Dim MyString as String Dim str as Variant MyString="ABCD/EFGH/IJKLM" Dim MyArray() as String MyArray = split(MyString,"/") Dim inIndex as Integer For Each str In MyArray inIndex= Instr(str,"EFGH") MsgBox inIndex Next @idstam : 我在尝试 VB6 代码 【参考方案1】:

你基本上会使用相同的算法:

循环遍历数组(您需要使用 Variant 作为 VB Classic For Each 的循环变量),

验证数组条目是否包含有问题的子字符串(这里需要使用InStr,因为VB Classic没有String.Contains),

返回索引(您已使用InStr 确定)。

实现留作练习。

【讨论】:

嗨 Heinzi.. 我已经通过了你的建议。但是您的解决方案主要用于字符串而不是字符串数组。由于 vb6 中的 Instr 接受两个参数,即 Instr(Stringinto, "Stringtosearch")。但我正在寻找数组索引。 @Mahesh:啊,但是您的 VB.NET 示例代码不返回数组索引:它返回字符串索引! 这就是我的意思。这是我正在尝试的 VB6 代码.. Dim MyString as String Dim str as Variant MyString="ABCD/EFGH/IJKLM" Dim MyArray() as String MyArray = split(MyString,"/") Dim inIndex as Integer For Each Str在 MyArray inIndex= Instr(str,"EFGH") MsgBox inIndex 下一个 @Mahesh:在这种情况下,使用常规的For 循环而不是For Each 循环并返回循环计数器。 感谢您的建议。会尝试相同的,并会通知您。【参考方案2】:
Function IndexOf(ByRef arr() As String, ByVal str As String) As Integer
    Dim joinedStr As String
    Dim strIndex As Integer
    joinedStr = "|" & Join(arr, "|")
    strIndex = InStr(1, joinedStr, str)
    If strIndex = 0 Then
        IndexOf = -1
        Exit Function
    End If
    joinedStr = Mid(joinedStr, 1, strIndex - 1)
    IndexOf = UBound(Split(joinedStr, "|")) - 1
End Function

【讨论】:

以上是关于使用VB6.0查找数组索引的主要内容,如果未能解决你的问题,请参考以下文章

如何在 numpy 数组上定义一个使用数组索引查找字典的函数?

C#查找最高数组值和索引

使用花哨的索引从 Numpy 数组中查找和删除全零列

如何使用numpy查找数组中元素的索引? [复制]

使用索引逻辑面试问题数组查找价值

如何在 int 数组中查找元素的索引?