【问题标题】:Finding Array index using VB6.0使用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 代码

标签: arrays 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多