Что нового

Как узнать индекс элемента массива.

misha497

Новичок
Сообщения
24
Репутация
2
Код:
Dim $1[4] = [23,4345,65,3333]
For $var In $1
	msgbox(1,'',$var);как здесь отобразить не переменную, а её индекс в Массиве
Next

Заранее благодарю.
 

Kalisnik

Эволюция
Сообщения
295
Репутация
63
Код:
Dim $1[4] = [23,4345,65,3333]
For $i = 0 To UBound($1) - 1
	MsgBox(0, "", "Индекс: " & $i & "; Значение: " & $1[$i])
Next
 
Автор
M

misha497

Новичок
Сообщения
24
Репутация
2
но в случае перечисления элементов коллекции из библиотеки IE такой вариант не работет,
то бишь надо:
Код:
for $image in $3
			If $image.name == '_stDer.jpg' Then 
				$source = _IEDocReadHTML($oIE)
				$4 = Stringregexp($source,'Цена.(.*).*руб',3)
				$Price = _Arraymax($4)
		
			     Else
                             ExitLoop
				EndIf
 

Kalisnik

Эволюция
Сообщения
295
Репутация
63
с элементами коллекции из библиотеки IE не работал и вникать (за ненадобностью) не хочется, но всегда можно поставить счетчик:

Код:
Dim $1[4] = [23,4345,65,3333], $i = -1
For $var In $1
	$i += 1
    msgbox(1,'',"Индекс: " & $i & "; Значение: " & $var);как здесь отобразить не переменную, а её индекс в Массиве
Next


P.S. Или так (конечно если $3 - это массив):
Код:
for $i = 0 To UBound($3) - 1
	$image = $3[$i]
    If $image.name == '_stDer.jpg' Then
        $source = _IEDocReadHTML($oIE)
        $4 = Stringregexp($source,'Цена.(.*).*руб',3)
        $Price = _Arraymax($4)
    Else
        ExitLoop
	EndIf
Next


OffTopic:
AutoIt умеет работать с коллекциями? - это же элементы ООП. Каждый день что-то узнаю новое об AutoIt. :laugh:
 

Strog

Новичок
Сообщения
22
Репутация
0
[Массивы] Re: Как узнать индекс элемента массива.

Вроде в ту тему написал, У меня есть массив 6*6 ($polemassiv) и надо чтобы цикл for заполнил его значениями от 0 до 5 ,т.е. записал значения соответствующие 5 цветам, каждая переменная массива $color cодержит значение цвета, каждый цвет имеет значение
зелёный = 0x75BC3C = 1
синий = 0:rofl:8B983 = 2
жёлтый = 0xFFF528 =3
серебрянный = 0x8D8676 = 4
красный = 0:rofl:3131E =5
Вот на примерах ваших попробовал , но что то не работает :scratch:
Код:
Dim $color[5] = [$grinK, $cherep ,$elloweK, $lechenie, $redK]

For $pp = 0 To 4 Step 1
For $a = 0 To UBound($color) - 1
      $Pozik1 = PixelSearch($XB, $YB , $XN, $YN, $color[$pp], $shade)
        If Not @error Then 
		$PoleMassiv[0][0] = $a
	Else
		$PoleMassiv[0][0] = 0
	EndIf
Next
Next
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
Strog а что вам помешало создать свою тему?
Тем более что на ваш вопрос есть ответ ;)
 

Strog

Новичок
Сообщения
22
Репутация
0
Чтобы не "засорять" форум, и как вы сказали есть ответ :smile: а где он ? если можно? :-\
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
Верх