Что нового

Вытащить числа в массив

alex747

Новичок
Сообщения
7
Репутация
0
Здравствуйте. Нужно получить со станицы количество энергий в массив.
То есть {2,6,2,4,1}

Код:
<div id="energy_enemy">
		<div id="efire"><a title="Энергия огня"><span id="enemyfire">2</span></a></div>
		<div id="eair"><a title="Энергия воздуха"><span id="enemyair">6</span></a></div>
		<div id="ewater"><a title="Энергия воды"><span id="enemywater">2</span></a></div>
		<div id="eearth"><a title="Энергия земли"><span id="enemyearth">4</span></a></div>
		<div id="edeath"><a title="Энергия смерти"><span id="enemydeath">1</span></a></div>
		<div id="eneut"><a title="Нейтральная энергия"></a></div>
</div>
^ эта штука находится в целой иерархии таблиц.

Соответственно, я пробовал так:
Код:
$oTable = _IETableGetCollection ($oFrame, 5)  ;
$A = _IETableWriteToArray($oTable) ;пишем таблицу в массив
_arraydisplay($A)


В итоге оно вернуло мне 26241 как одно число.
Разрезать его на цифры я могу (наверно), но проблема возникает
когда маны становится больше 10, то есть, к примеру
{11,12,4,2,0}
На выход получаем 1112420 и разрезать правильно не удается.

Помогите, пожалуйста, с написанием регулярного выражения (видимо), так как я с ними почти не знаком :smile:
 
Автор
A

alex747

Новичок
Сообщения
7
Репутация
0
Прошу прощения, почти сразу же нашел ответ, хотя до этого потратил достаточно много времени.

Решилось так:

Код:
Global $EnemyMana[5]

$oTemp = _IEGetObjById($oFrame, "enemyfire")
$EnemyMana[0] = $oTemp.innertext

$oTemp = _IEGetObjById($oFrame, "enemyair")
$EnemyMana[1] = $oTemp.innertext

$oTemp = _IEGetObjById($oFrame, "enemywater")
$EnemyMana[2] = $oTemp.innertext

$oTemp = _IEGetObjById($oFrame, "enemyearth")
$EnemyMana[3] = $oTemp.innertext

$oTemp = _IEGetObjById($oFrame, "enemydeath")
$EnemyMana[4] = $oTemp.innertext

_arraydisplay($EnemyMana)



Соответственно, прошу дать ссылку, где почитать про (члены класса :blink:smile: в AutoIT
Я имею ввиду $oTemp.innertext
Что можно писать после точки и что оно значит
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
alex747,
Можно примерно так сделать.
Код:
#include <IE.au3>
#include <Array.au3>

Opt('MustDeclareVars', 1)

Local $sUrl = @ScriptDir & '\1.html', $aID[6] = [5, 'efire', 'eair', 'ewater', 'eearth', 'edeath'], _
		$aTagAtr[2][2] = [['a', 'title'],['span', 'innertext']], $aRet[5][2], $i_Err = 1, $oIE, $oDiv, $oTmp

Do
	$oIE = _IECreate($sUrl)
	If @error Then ExitLoop
	For $i = 1 To $aID[0]
		$oDiv = _IEGetObjById($oIE, $aID[$i])
		If @error Then ExitLoop 2
		For $j = 0 To 1
			$oTmp = _IETagNameGetCollection($oDiv, $aTagAtr[$j][0], 0)
			If @error Then ExitLoop 3
			$aRet[$i - 1][$j] = $oTmp.GetAttribute($aTagAtr[$j][1])
			If @error Then ExitLoop 3
		Next
	Next
	$i_Err = 0
Until 1
If $i_Err Then
	MsgBox(16, 'Error', 'Error')
Else
	_ArrayDisplay($aRet)
EndIf
 
Верх