Что нового

[Массивы] Цикличность выбора данных из массива

defens

Знающий
Сообщения
89
Репутация
5
Подскажите как выполнить условие при действии?
В общем нужно, чтоб из массива бралось одно слово писало его на сайте, а когда цикл For $i выберет следующее значение, то вставить новое слово на сайте

так у меня пишет все слова в строке
Код:
Func _Script() ; 
Dim $aArray[176]=["А", "B", "C",........, "z"]
;.....
For $i = GUICtrlRead($Input1) To GUICtrlRead($Input2)

_IENavigate($oIE, $sUrl)
Sleep(20)
   ;.....
Sleep(200)
	MouseClick("left", 310, 190, 1, 0)
Sleep(200)
Send("^a") ; Послать Ctrl+A

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

Next
Sleep(200)
	MouseClick("left", 310, 190, 1, 0)
Sleep(200)
   ;.....

Sleep(1000)
    _IELinkClickByText($oIE,"Выход")
Sleep(50)
;.....
Next

EndFunc


а так только одно первое слово ну или другое смотря какое значение поставлю
Код:
Func _Script() ; 
Dim $aArray[176]=["А", "B", "C",........, "z"]
;.....
For $i = GUICtrlRead($Input1) To GUICtrlRead($Input2)

_IENavigate($oIE, $sUrl)
Sleep(20)
   ;.....
Sleep(200)
	MouseClick("left", 310, 190, 1, 0)
Sleep(200)
Send("^a") ; Послать Ctrl+A
  
  Send($aArray[1])

Sleep(200)
	MouseClick("left", 310, 190, 1, 0)
Sleep(200)
   ;.....

Sleep(1000)
    _IELinkClickByText($oIE,"Выход")
Sleep(50)
;.....
Next

EndFunc



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

пришла мысль может вынести ее из в функции в отдельную функцию?
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Re: [Массивы] Очередность ввода данных из массива в функции

вот пример
Код:
Run('notepad.exe')
Sleep(5000)
Dim $array[10]
$array[0] = '1'
$array[1] = '2'
$array[2] = '3'
$array[3] = '4'
$array[4] = '5'
$array[5] = '6'
$array[6] = '7'
$array[7] = '8'
$array[8] = '9'
$array[9] = '10'
WinActivate('[class:Notepad]')
For $i = 0 To UBound($array) - 1
ControlSend('[class:Notepad]','','Edit1',$array[$i] & @LF)
Next
для перехода на другую строку добавь
Код:
@LF
 
Автор
D

defens

Знающий
Сообщения
89
Репутация
5
Re: [Массивы] Очередность ввода данных из массива в функции

мне не на строку надо
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Re: [Массивы] Очередность ввода данных из массива в функции

в таком случае не точно подобрано название темы. у тебя вопрос по ожиданию появления поля ввода.
соответственно в цикле после
Код:
Send($aArray[1])

должно быть ожидание появления нового поля
или я опять не понял?
 
Автор
D

defens

Знающий
Сообщения
89
Репутация
5
Re: [Массивы] Очередность ввода данных из массива в функции

Нет там ожидания как такового "Послать Ctrl+A" и можно туда вставлять данные из массива. и сразу нажать подтвердить
Проблема в том, что не могу вставить по очереди их или все сразу или какое то одно.


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

тему да скорее всего немного не так назвал, просто ввод данных из массива в функции, слово очередность думаю лишнее наверное


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

тогда в нескольких словах о самой функции:
1 For $i = GUICtrlRead($Input1) To GUICtrlRead($Input2) отсюда берем интервал что прописали вручную;
2 далее из \*.ini берется логин и пароль соответствующие интервалу от $Input1 до $Input2;
3 вставляются авторизацию на сайте, переходим по ссылке что в _IENavigate($oIE, $sUrl)
и там мне надо выделить слово что было и (до этого момента все идет верно) вставить что я прописал в массив;
4 затем выход с сайте и снова все повторяться в рамках заданного интервала.
а теперь как раз о проблеме не получается при каждой смене писать(вставлять) разное из массива. В первом случае все сразу, во втором одно и тоже так как ($aArray[1]) то что соответствует выбранной цифре
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Re: [Массивы] Очередность ввода данных из массива в функции

defens [?]
4 затем выход с сайте и снова все повторяться в рамках заданного интервала.
ну так ожидание все равно нужно в цикле
Код:
For $i = 0 To UBound($aArray) - 1
  Send($aArray[1])
; здесь ожидание. потом перелогивание и опять вставка следующего значения из массива. или не так?
Next
 
Автор
D

defens

Знающий
Сообщения
89
Репутация
5
Re: [Массивы] Очередность ввода данных из массива в функции

joiner [?]
; здесь ожидание. потом перелогивание и опять вставка следующего значения из массива. или не так?
перелогивание после Next и никакое дополнительно ожидание не нужно.




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

переставил циклы наоборот(в цикл с массивом вложил перелог) эффект тот же :Censored:
Код:
Func _Script() ;
	
Dim $aArray[176]=["А", "B", "C",........, "z"]
;.....
For $i = 0 To UBound($aArray) - 1
	For $i = GUICtrlRead($Input1) To GUICtrlRead($Input2)

_IENavigate($oIE, $sUrl)
Sleep(20)
   ;.....
Sleep(200)
    MouseClick("left", 310, 190, 1, 0)
Sleep(200)
Send("^a") ; Послать Ctrl+A


  Send($aArray[1])


Sleep(200)
    MouseClick("left", 310, 190, 1, 0)
Sleep(200)
   ;.....

Sleep(1000)
    _IELinkClickByText($oIE,"Выход")
Sleep(50)
;.....
	Next
Next
EndFunc



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

не выходит с массивом решил брать из файла
Код:
;.....
 $i= Random(1, 175, 1)
$sName = IniRead(@ScriptDir & '\name.ini', "names", "" & $i, "")
 ;.....
Send($sName)
 ;.....

вопрос пока не решен это временно, все равно БУДЕТ В КОДЕ МАССИВ ;D
 
Верх