vb6 在字符串中查找值将位置和值添加到列表框

vb6 find value in a string add position and value to listbox

我正在使用 Visual Basic 6
我试图在字符串
中找到一个值的位置 查找代码似乎有效问题是代码将信息添加到列表框中两次

位置 2 值 2
位置 2 值 2
位置 4 值 2
位置 4 值 2

每次要搜索的字符串总是以某种随机顺序的 1 到 9 个值
现在写的代码只搜索一个值

我的问题是如何只将位置和值添加到列表框?

Private Sub Form_Load()
   Dim S1, S2, MyPos As String
   Dim I As Integer

   I = 1
   S1 = "123245"
   S2 = "2"
   tbOne.Text = S1

   Do Until I = 5 'This will be Len(S1) - 1 later
      MyPos = InStr(I, S1, S2, 1)
      tbTwo.Text = tbTwo.Text & MyPos & vbNewLine
      'If MyPos = S2 Then
          lbOne.AddItem "Position " & MyPos & " " & "Value " & S2
      'End If

      I = I + 1
   Loop
End Sub

这似乎可以满足您的需求:

Option Explicit

Private Sub Form_Load()
   Dim S1 As String, S2 As String, MyPos As String
   Dim i As Integer

   S1 = "123245"
   S2 = "2"
   tbOne.Text = S1
   
   For i = 1 To Len(S1) - 1
      If Mid(S1, i, 1) = S2 Then
         tbTwo.Text = tbTwo.Text & i & vbNewLine
         lbOne.AddItem "Position " & i & " " & "Value " & S2
      End If
   Next
End Sub

请注意,在同一行声明变量时必须指定类型,除非您希望它们是 Variant 类型。