$tag[1,"src"]
Так обращаться все равно придется по числам... Вообщем предчусвтия меня не обманулии..Yashied сказал(а):Остается только завести второй массив, содержащий индексы и соответствующие им имена...
#include <IE.au3>
$oIE = _IECreate ("http://www.autoitscript.com/")
$oImgs = _IEImgGetCollection ($oIE)
$iNumImg = @extended
MsgBox(0, "Img Info", "There are " & $iNumImg & " images on the page")
For $oImg In $oImgs
MsgBox(0, "Img Info", "src=" & $oImg.src)
Next
Так это же не массив! Это метод объекта! Проще говоря внутренняя функция.Каждый компонент такую вот структуру поддерживает $oImg.src
AutoItObject UDFобъектная модель как-то поддерживается
Я сколько уже кодирую, ни разу не возникала такая необходимость.Как зачем?! Согласитесь иной раз удобнее обратится к массиву так $Array['name'] чем так $Array[5]!
Dim $aMyArr[2][2] = [["href", "http://Url.com"], ["src", "http://Image.png"]]
ConsoleWrite(_Array($aMyArr, "src") & @LF)
ConsoleWrite(_Array($aMyArr, "href") & @LF)
Func _Array(ByRef $aArr, $sElmnt)
For $i = 0 To UBound($aArr)-1
If $aArr[$i][0] = $sElmnt Then
Return $aArr[$i][1]
EndIf
Next
Return SetError(1, 0, -1)
EndFunc
Вот спасибо CreatoR за ссылку! Тоже гляну что за UDF, сам много раз задумывался над возможностью ООП внутри Autoit`аCreatoR сказал(а):AutoItObject UDF
#include <IE.au3>
$aIE['links'] = Array[['href',''],['innertext','']]
$aIE['img'] = Array[['src',''],['alt','']]
$oIE = _IECreate()
$oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
$aIE['links']['href'] = $oLinks.href
$aIE['links']['innertext'] = $oLinks.innertext
Next
$oImages = _IEImgGetCollection($oIE)
For $oLink In $oLinks
$aIE['img']['src'] = $oLinks.src
$aIE['img']['alt'] = $oLinks.getAttribute('alt')
Next
_ArrayDisplay($aIE)
А как же тогда “сообщить” массиву о переборе последующих элементов (я про цикл)? там в цикле всего одна запись присваивается. Итерация всё равно нужна.Пример использования ассоциативного массива
Особо не кодил, я свой поход в мир программирования сделал через батники -> AutoIt -> Vbs (да да, vbs “по нормальному” я изучил после AutoIt'а).просто ты не кодил на других языках, по всей видимости
Ну так есть же доступ к этому словарю из AutoIt'а, почему мы все им не пользуемся?в объекте типа словарь нужно просто обратиться к словарю по ключу
Можно полюбопытствовать?!Ну так есть же доступ к этому словарю из AutoIt'а, почему мы все им не пользуемся?
Можно полюбопытствовать?
Global Const Enum $nDict_BinaryCompare, $nDict_TextCompare
_Dict_Add("AutoIt", "http://autout-script.ru")
_Dict_Add("Image", "http://autoit-script.ru/Smileys/AutoIt_Smileys/Typing_Guy.gif")
_Dict_Add("New", "Some new item")
MsgBox(64, 'Title', _Dict_Item("AutoIt"))
Func _Dict_Add($sKey, $sItem)
If Not IsDeclared('oDict') Then
Assign('oDict', ObjCreate("Scripting.Dictionary"), 2)
EndIf
Return Execute('$oDict.Add("' & $sKey & '", "' & $sItem & '")')
EndFunc ;==>_Dict_Add
Func _Dict_CompareMode($nCompare = '')
If $nCompare = '' Then
Return Execute('$oDict.CompareMode("")')
Else
Return Execute('$oDict.CompareMode = "' & $nCompare & '"')
EndIf
EndFunc ;==>_Dict_CompareMode
Func _Dict_Count()
Return Execute('$oDict.Count()')
EndFunc ;==>_Dict_Count
Func _Dict_Exists($sKey)
Return Execute('$oDict.Exists("' & $sKey & '")')
EndFunc ;==>_Dict_Exists
Func _Dict_Item($sKey)
Return Execute('$oDict.Item("' & $sKey & '")')
EndFunc ;==>_Dict_Item
Func _Dict_Items()
Return Execute('$oDict.Items()')
EndFunc ;==>_Dict_Items
Func _Dict_Key($sOldKey, $sNewKey)
Return Execute('$oDict.Key("' & $sOldKey & '") = "' & $sNewKey & '"')
EndFunc ;==>_Dict_Key
Func _Dict_Keys()
Return Execute('$oDict.Keys()')
EndFunc ;==>_Dict_Keys
Func _Dict_Remove($sKey)
Return Execute('$oDict.Remove("' & $sKey & '")')
EndFunc ;==>_Dict_Remove
Func _Dict_RemovetAll()
Return Execute('$oDict.RemoveAll()')
EndFunc ;==>_Dict_RemovetAll
че-то не пойму, это вопрос настоящий или риторический. я чесгря, слыхом не слыхивал об этом объекте.Ну так есть же доступ к этому словарю из AutoIt'а, почему мы все им не пользуемся?
CreatoR сказал(а):Код:Dim $aMyArr[2][2] = [["href", "http://Url.com"], ["src", "http://Image.png"]] ConsoleWrite(_Array($aMyArr, "src") & @LF) ConsoleWrite(_Array($aMyArr, "href") & @LF) Func _Array(ByRef $aArr, $sElmnt) For $i = 0 To UBound($aArr)-1 If $aArr[$i][0] = $sElmnt Then Return $aArr[$i][1] EndIf Next Return SetError(1, 0, -1) EndFunc