1

Тема: VB: For Each, индекс элемента

Добрый день,

Я все еще плаваю в вопросах VB
Подскажите, пожалуйста, возможно ли получить индекс элемента массива, полученного с помощью конструкции For Each?

dim index
dim i(3)
i(0) = 2
i(1) = 1
i(2) = 3

For Each j in i
if j = 3 then
index = ..... ' Индекс 2 элемента i(2)
end if
Next

Спасибо!

2 (изменено: Xameleon, 2011-03-11 16:05:02)

Re: VB: For Each, индекс элемента

Самый просто способ - параллельным наращиванием счётчика в цикле (c = c +1). Либо перебирать элементы через

For j=1 to Ubound(i)
   a = i(j)
Next

P.S Не забывайте указывать в заголовке сообщения язык на котором написан скрипт. В вашем случае VBS или VBScript. - "VBS:For Each.. Индекс элемента.". Пункт правил 3.1.

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

3 (изменено: Dmitrii, 2011-03-11 16:35:49)

Re: VB: For Each, индекс элемента

Lirien, в массиве i(3) не три, а четыре элемента, т.к. минимальное значение индекса не 1, а 0.

Xameleon пишет:
For j=1 to Ubound(i)
   a = i(j)
Next

Для перебора всех элементов правильный вариант либо таков:

For j=1 to Ubound(i) + 1
   a = i(j - 1)
Next

либо таков:

For j=LBound(i) to Ubound(i)
   a = i(j)
Next

4

Re: VB: For Each, индекс элемента

Lirien, в массиве i(3) не три, а четыре элемента, т.к. минимальное значение индекса не 1, а 0.

Спасибо, насчет этого я в курсе

В общем так и сделал - перебором. Я просто предположил, что есть какая-нибудь штатная компонента конструкции For Each.

Всем спасибо за помощь!

5

Re: VB: For Each, индекс элемента

2 Dmitrii: Точно. ) Благодарю за исправление.

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !