Что нового

[Массивы] Реализация вставки значений из массива по порядку, по функции Send.

prokazzza

Новичок
Сообщения
160
Репутация
2
Всем доброго времени суток, имеется вот такой кусок кода:

Код:
Dim $avArray[6] ;объявляем массив из 6 индексов (от 0 по 5)
$avArray[1] = "A"
$avArray[2] = "B"
$avArray[3] = "C"
$avArray[4] = "D"
$avArray[5] = "E"

Local $i = 0
Do
   MsgBox($MB_SYSTEMMODAL, "", "Проход: " & $i, 5)
   $i = $i + 1
	  Send()
Until $i = 5

Exit

Func Send()
   Send ("????????????")
EndFunc


Подскажите реализацию вставки значений из массива по порядку, по функции Send, цикл идет 5 раз, каждый раз значение должно идти по порядку, от А до Е. Или хотя бы ссылку на аналогичный пример. Заранее спасибо.
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Так?
Код:
Dim $avArray[6] ;объявляем массив из 6 индексов (от 0 по 5)
$avArray[0] = "A"
$avArray[1] = "B"
$avArray[2] = "C"
$avArray[3] = "D"
$avArray[4] = "E"
$avArray[5] = "F"

For $i=0 To UBound($avArray)-1
   Send($avArray[$i])
Next
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
prokazzza,
Если я Вас правильно понял, то можно примерно так сделать.
Код:
Global $aSend[6] = [0, 'A', 'B', 'C', 'D', 'E'], $iCount = Random(5, 10, 1)

For $i = 1 To $iCount
	_MySend($aSend)
	ConsoleWrite($i & '(' & $iCount & ')' & @LF)
Next

Func _MySend(ByRef $a_Send, $i_SleepMin = 500, $i_SleepMax = 1500)
	Sleep(Random($i_SleepMin, $i_SleepMax, 1))
	$a_Send[0] += 1
	If $a_Send[0] > UBound($a_Send) - 1 Then $a_Send[0] = 1
	ConsoleWrite($a_Send[$a_Send[0]] & @TAB)
;~   Send($a_Send[$a_Send[0]])
EndFunc   ;==>_MySend
 
Автор
P

prokazzza

Новичок
Сообщения
160
Репутация
2
Немного не то. :( Нужно чтобы во время первого прохода, Send отправлял значение А, во время второго значение B и т.д по порядку.

Yuriy в вашем случае отправилось вот так - ABCDEF.
madmasles в вашем если не ошибаюсь рандом.
 

Z_Lenar

Продвинутый
Сообщения
209
Репутация
52
Код:
Func _Send()
	Local Static $i = 0
	Local Const $aVals[6] = ['A', 'B', 'C', 'D', 'E', 'F']

	Send($aVals[$i])
	$i += 1
	If $i = UBound($aVals) Then $i = 0
EndFunc
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
в вашем случае отправилось вот так - ABCDEF
Это так кажется :smile:

Код:
Dim $avArray[6] ;объявляем массив из 6 индексов (от 0 по 5)
$avArray[0] = "A"
$avArray[1] = "B"
$avArray[2] = "C"
$avArray[3] = "D"
$avArray[4] = "E"
$avArray[5] = "F"

For $i=0 To UBound($avArray)-1
   Send($avArray[$i])
   Sleep(2000)
Next
 
Автор
P

prokazzza

Новичок
Сообщения
160
Репутация
2
Yuriy


http://postimage.org/index.php?lang=russian


Добавлено:
Сообщение автоматически объединено:

Z_Lenar все получилось, спасибо.
madmasles к сожалению не смог разобраться в вашем примере.

Всем спасибо за помощь.
 
Верх