Arrays 从数组中删除元素visual basic 6

Arrays 从数组中删除元素visual basic 6,arrays,vb6,Arrays,Vb6,我有一个由多个字符串组成的数组,我想删除其中一个字符串。如果我的数组有一个相同的元素,因此[“a”、“b”、“b”、“c”]并且我想删除其中一个b元素,那么我的方法将同时删除这两个元素。以下是我目前的代码: Private Function Search_Array(Character As String) As Boolean For Loop_Index = 1 To UBound(Characters_Array) If Characters_Array(Loop

我有一个由多个字符串组成的数组,我想删除其中一个字符串。如果我的数组有一个相同的元素,因此
[“a”、“b”、“b”、“c”]
并且我想删除其中一个b元素,那么我的方法将同时删除这两个元素。以下是我目前的代码:

Private Function Search_Array(Character As String) As Boolean

    For Loop_Index = 1 To UBound(Characters_Array)
        If Characters_Array(Loop_Index) = Character Then
            Search_Array = True
            Characters_Array(Loop_Index) = ""
        End If
    Next

End Function

对于如何从阵列中仅移除一个b,是否有人有任何建议。非常感谢。

将找到的第一个字符设置为空字符串后,只需退出循环即可

Private Function Search_Array(Character As String) As Boolean

    For Loop_Index = 1 To UBound(Characters_Array)
        If Characters_Array(Loop_Index) = Character Then
            Search_Array = True
            Characters_Array(Loop_Index) = ""
            Exit For
        End If
    Next

End Function

对我来说,最好的方法是创建新函数,并在该函数中将值放入新数组,然后将旧数组重定为空,然后使用if查找要添加回旧数组的项。请参阅下面的代码

Private Function arrClean_ARR(arrOld As Variant) As variant
On Error GoTo ErrLn
    Const c_strProcName = "countARR"
Dim i As Long
Dim arrayValues As Variant
Dim count As Long

' put values in new array
arrayValues = arrOld 

count = 0
For i = LBound(arrayValues) To UBound(arrayValues)
  'if value of the new array is "" then don't add in old array. Here you can   put your value (whatever) and it will not be in array. In that way you actualy remove value from array
  If arrayValues(i) <> "" Then
    ReDim Preserve arrOld (count)
    arrOld (i) = arrayValues(i)
    count = count + 1
  End If
Next i
arrClean_ARR = arrOld 
Exit Function
私有函数arrClean\u ARR(arrOld作为变量)作为变量
关于错误转到ErrLn
Const c_strProcName=“countARR”
我想我会坚持多久
Dim ArrayValue作为变量
不算长
'将值放入新数组中
arrayValues=arrOld
计数=0
对于i=LBound(ArrayValue)到UBound(ArrayValue)
'如果新数组的值为“”,则不要添加旧数组。在这里,您可以将您的值(无论什么)放在数组中,它将不在数组中。通过这种方式,实际上可以从数组中删除值
如果ArrayValue(i)“,则
雷迪姆保留区(计数)
arrOld(i)=数组值(i)
计数=计数+1
如果结束
接下来我
arrClean\u ARR=arrOld
退出功能

那么,从本质上说,您是在尝试删除重复项?还是只想删除特定字符的重复项?