Что нового

[Сеть, интернет] Ошибка в скрипте по поиску вакансий

snezzok

bulatenok_64rus
Сообщения
12
Репутация
0
Всем доброй ночи.
Есть такая некая проблема.
Я делаю скрипт "Вакансер".
Код:
#Include <INet.au3>
#include <String.au3>
#include <Array.au3>
;======================================
$i2 = InputBox("Вакансер", "Кто?", "грузчик", "", -1, -1,Default,Default)
$i3 = InputBox("Вакансер", "Сколько?", "15000", "", -1, -1,Default,Default)
;======================================
FileOpen("c:\temp1\asdfgh.txt",9)
FileOpen("c:\temp1\qwerty.txt",9)
$buffer = StringToBinary($i2,4) ; делаем бинарными
$text = Hex($buffer, 4) ; в 16-тиричные
$len = StringLen($text)
For $i = 1 To $len Step 2
$sResult = StringMid($text,$i,2)
$FW = FileWrite("c:\temp1\asdfgh.txt","%"&$sResult)
Next
$FR = FileRead("c:\temp1\asdfgh.txt")
$HTML = _INetGetSource('https://rabota.yandex.ru/search?text='&$FR&'&rid=194&salary_from='&$i3)
$FW = FileWrite("c:\temp1\qwerty.txt",$HTML)
$FR = FileRead("c:\temp1\qwerty.txt")
$aRes = StringRegExpReplace($FR, '(?si)(https?://[0-9a-z.-]+yandex.ru/[0-9A-z \/-=:;&]+)', "xer")
$aRes1 = StringRegExpReplace($aRes, '(?si)(https?://[0-9a-z.-]+google.com/[0-9A-z \/-=:;&]+)', "xer")
$aRes2 = StringRegExpReplace($aRes1, '(?si)(https?://[0-9a-z.-]+appsflyer.com/[0-9A-z \/-=:;&]+)', "xer")
$aRes3 = StringRegExp($aRes2, '(http://[0-9a-z.ru]+[/a-z0-9\-_.html]+)*', 3)
$iRows = UBound($aRes3, 1)
$aNewArray = _ArrayUnique($aRes3)
FileRecycle("c:\temp1\qwerty.txt")
FileRecycle ("c:\temp1\asdfgh.txt")
FileRecycle("c:\temp1")
For $i = 2 To $iRows-1
ShellExecute($aNewArray[$i+1])
Next

Который ищет вакансии(работа), через шмяндекс.работа, и поочередно открывает найденные ссылки через браузер (по умолчанию). Все вроде работает без проблем, но для дальнейшей доработки скрипта, мешает одно но!. В консоли вылетает непонятная мне ошибка вида:
Код:
"D:\Project's\autoIT\forma_1_v4.au3" (31) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
ShellExecute($aNewArray[$i+1])
ShellExecute(^ ERROR
Подскажите пожалуйста в чем проблема?, и как проще это исправить. Заранее благодарен.
 

ildar

Осваивающий
Сообщения
252
Репутация
29
Если в конце перед циклом добавить
Код:
MsgBox(0,'', $iRows -1 & '  ' & UBound($aNewArray))
For $i = 2 To $iRows-1
ShellExecute($aNewArray[$i+1])
Next

Будет видно что значение $iRows -1 намного больше чем размер массива $aNewArray(99420 и 14)
 
Автор
snezzok

snezzok

bulatenok_64rus
Сообщения
12
Репутация
0
Исправил.
Размер массива поставил после "уникалки", и изменил цикл,
Код:
$aNewArray = _ArrayUnique($aRes3)
$iRows = UBound($aNewArray,1)
;~ _ArrayDisplay($aNewArray)
For $i = 3 To $iRows-1
ShellExecute($aNewArray[$i])
Next

получилось без ошибок.
 
Верх