2016-01-25 71 views
1

如何訪問二維數組我想從數組位置[3] [3]中獲取字符串狗並將其存儲在一個變量中。這裏是我的代碼AutoIT訪問2D數組值

#include <Array.au3> 
#include <IE.au3> 

Local $aTableData 
Local $oIE = _IE_Example("table") 
Local $oTables = _IETableGetCollection($oIE) 
    For $oTable In $oTables 
     If $oTable.id == "tableOne" Then 
      $aTableData = _IETableWriteToArray($oTable) 
      ExitLoop 
     EndIf 
    Next 

_ArrayDisplay($aTableData) 

_IEQuit($oIE) 

我覺得像這樣的工作,但它不是

Local $oDog = $aTableData[3][3] 
+0

如果你把這個後@aTableData = _IETableWriteToArr ay($ oTable)line:「ConsoleWrite(」元素數量:「&UBound($ aTableData)&」「&$ oTable.rows.length&@CRLF)」您的計數是什麼?數組中是否實際上有數據? – Aaron

+0

是的,它在控制檯中返回這個消息:'元素數量:6 6' –

+0

你的代碼應該工作......這就是你在AutoIT中訪問數組的方式......這段代碼是否完成,或者你是否在不同的函數中執行此操作?您的$ oDog變量是否與您的$ oTable循環不同?這是一個局部變量。如果它超出範圍,那纔是真正影響它的唯一因素。 – Aaron

回答

1

陣列

數組是一種包含可變一系列數據元素。該變量中的每個 元素都可以通過索引號訪問。

一個例子:

要存儲一系列字符:"A", "U", "T", "O", "I", "T""3"。你可以使用七個獨立的變量,這樣做的,但使用數組更有效:

$aArray[0] = "A" 
$aArray[1] = "U" 
..etc.. 
$aArray[6] = "3" 

要訪問陣列中的一個特定的值,可以使用索引號:

$sString = $aArray[2] 

這導致包含字母 「T」 $ sString

您的代碼:

#include <Array.au3> 
#include <IE.au3> 

Local $aTableData 
Local $oIE = _IE_Example("table") 
Local $oTables = _IETableGetCollection($oIE) 
    For $oTable In $oTables 
     If $oTable.id == "tableOne" Then 
      $aTableData = _IETableWriteToArray($oTable) 
      ExitLoop 
     EndIf 
    Next 

Local $oDog = $aTableData[3][3] 
ConsoleWrite($oDog) 

_ArrayDisplay($aTableData) 

_IEQuit($oIE) 
+0

適用於AutoIT示例代碼!但我只是用那個與我的實際問題有關的例子。在我的實際問題中(儘管我在執行'_ArrayDisplay($ aTableData)'時看到了表格單元格中的信息,只要我嘗試寫入控制檯,就沒有輸出。 –

+0

@dannytaki然後你的問題是關於控制檯編寫,而不是數組使用本身,嘗試使用消息框,如果它可以在_ArrayDisplay中顯示,那麼它肯定可以通過使用索引來訪問,爲什麼不製作錯誤重現器或發佈腳本? – Milos

+0

我添加了我的腳本,但我認爲它不會很有用,它要求你有一個「亞馬遜賣家」賬戶,否則你不能查看頁面。我基本上想要我的年齡最大的時候的日期。 –