Что нового

[Массивы] Скрипт выдает ошибку Array variable has incorrect number of subscripts...

Статус
Закрыто для дальнейших ответов.

bestover

Новичок
Сообщения
1
Репутация
0
Здравствуйте.
Не могу понять в чем проблема:
Array variable has incorrect number of subscripts or subscript dimension range exceeded
$value=$kluchiMassiv[$r]
$value=^ ERROR

Код:
#include <IE.au3>
#include <File.au3>
#include<Array.au3>
DIM $massivStartKluch
Dim $allkluchiMassiv[1]

_FileReadToArray("стартключи.txt",$massivStartKluch);Получили стартовые ключи для работы

;Блок 1 - сбор ключевых слов

$chisloSlov=$massivStartKluch[0];определяем сколько старотовых слов в массиве $massivStartKluch
MsgBox(1,"Внимание!","Вы обрабатываете "&$chisloSlov&" ключевых слова")
$i=1
while $i<=$chisloSlov
	$oIE=_IECreate("wordstat.yandex.ru")
	;$massivStartKluch=
	$oForm=_IEFormGetObjByName($oIE,"ad")
	$zapros=$massivStartKluch[$i]
	$oInput=_IEFormElementGetObjByName($oForm,"t")
	_IEFormElementSetValue($oInput,$zapros)
	_IEFormSubmit($oForm)
	sleep(1000)
	;обработка вопроса в переменную для getword функции
	$oLocURL=_IEPropertyGet($oIE,"locationurl")
	_IEQuit($oIE)
	$sHTML=_IECreate($oLocURL)
	sleep(1000)
	$pHTML = _IEBodyReadHTML($sHTML)
	$kluchiMassiv=StringRegExp($pHTML, ';t=(.*?)">',3)
	;$vopros=$voprosMassiv[0];ну вот сюда идет последнее его сообщение которое уже можно и передавать в функцию
	;MsgBox(1,"1",$kluchiMassiv[4]);с четвертой позиции начинаются собственно ключевики
	$q=UBound($allkluchiMassiv)

	;здесь бы надо функцией преобразовать эту кракозябру в текст
	;$w=0;по хорошему начинать нужно с $w=4
	;while $w<=$q
	;$r=1
	$e=UBound($kluchiMassiv)
	;_ArrayDisplay( $allkluchiMassiv, "Весь массив сначала" )
	sleep(1000)
	;_ArrayDisplay( $kluchiMassiv, "Считанный массив" )
	for $r=0 to $e
		;MsgBox(1,"",$r)
	$value=$kluchiMassiv[$r]
	;MsgBox(1,"",$value)
	;_ArrayAdd($allkluchiMassiv,$value)
	;$r+=1
;_ArrayDisplay( $allkluchiMassiv, "Весь массив сначала" )
	;WEnd
	Next
;_ArrayDisplay( $allkluchiMassiv, "Весь массив сначала" )
	;_ArrayDisplay( $kluchiMassiv, "Считанный массив" )
	sleep(1000)
	$i+=1
	_IEQuit($sHTML)

WEnd
_FileWriteFromArray("base.txt",$allkluchiMassiv,1);а здесь мы пишем в файл

Поиском по форуму воспользовался: у меня вложенные циклы работают на разных переменных.
Интересно, что при присвоение $e=3, а не размеру массива все работает правильно.

Первое сообщение, прошу строго не судить) Спасибо
 

C2H5OH

AutoIT Гуру
Сообщения
1 473
Репутация
333
Код:
$e=UBound($kluchiMassiv) - 1
 
Статус
Закрыто для дальнейших ответов.
Верх