У меня есть вариант в VB6 с тысячами строк.
У меня также есть массив фиксированной длины.
Мне нужно сравнить содержимое каждого и добавить те, которые соответствуют, в список.
if array(i) = variant(1,i) then
'add to list
End if
Я не могу понять, как правильно перебирать оба варианта для сравнения, так как метод, который я использую для перебора Variant(), останавливается после прохождения каждого элемента. Поэтому он никогда не проверяет, равен ли какой-либо элемент i+1 в массиве.
Private Sub dp_Click()
Dim fArray
fArray = Array("a", "b", "c")
LstAPens.ListItems.Clear
LstUPens.ListItems.Clear
For x = 0 To UBound(fArray)
Dim i As Long, m As Integer
'Do Until batcharray(0, i) = "End"
' tmpArray(i) = UCase(batcharray(1, i))
'Loop
Do Until batcharray(0, i) = "End"
If (InStr(1, UCase(batcharray(1, i)), UCase(fArray(x))) > 0) Then
LstAPens.ListItems.Add
With LstAPens.ListItems(m + 1)
.SubItems(1) = batcharray(1, i) 'Tagname
End With
m = m + 1
End If
i=i+1
Loop
Next x
End Sub
Я попытался преобразовать Variant в массив, но это не сработало.
Единственный найденный элемент — это первый элемент в массиве, затем Variant больше не повторяется, поскольку он достиг конца.
Как я могу перебрать Variant с именем batchArray в этом примере и сравнить его с содержимым массива?
until
либо всегда выполняется, либо когда-либо останавливает выполнение, как опубликовано, учитывая, что переменная цикла i никогда не изменяется. Интересно, что-то упущено? Спасибо, если бы вы могли просмотреть/проверить опубликованный код..Спасибо!! :) - person David W   schedule 03.06.2015