【问题标题】:AutoIT Access 2D Array ValueAutoIT 访问二维数组值
【发布时间】:2016-05-02 06:52:31
【问题描述】:

如何访问二维数组我想从数组位置 [3][3] 获取字符串 dog 并将其存储在变量中。这是我的代码

#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]

【问题讨论】:

  • 如果你把它放在@aTableData = _IETableWriteToArray($oTable) 行之后:"ConsoleWrite("元素数:" & UBound($aTableData) & " " & $oTable.rows.length & @ CRLF)“你的数量是多少?数组里面真的有数据吗?
  • 是的,它在控制台中返回此消息:number of elements: 6 6
  • 您的代码应该可以工作...这就是您在 AutoIT 中访问数组的方式...此代码是否完整,或者您是否在不同的函数中执行此操作?您的 $oDog 变量是否与您的 $oTable 循环在不同的函数中?这是一个局部变量。如果它超出范围,那真的是唯一会影响它的事情。
  • 举个例子,这行得通……这基本上和你正在做的事情是一样的。本地 $aTableData[2][2] = [["Test 0 0","Test 1 0"],["Test 0 1","Test 1,1"]] 本地 $oDog = $aTableData[1][ 1] & @CRLF ConsoleWrite($oDog)

标签: arrays multidimensional-array autoit


【解决方案1】:

数组

数组是包含一系列数据元素的变量。每个 此变量中的元素可以通过索引号访问。

一个例子:

您要存储一系列字符:"A", "U", "T", "O", "I", "T""3"。您可以使用七个单独的变量来执行此操作,但使用数组更有效:

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

要访问 Array 中的特定值,请使用索引号:

$sString = $aArray[2]

这导致 $sString 包含字母“T”

您的代码:

#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)

【讨论】:

  • 这适用于 AutoIT 示例代码!但我只是用那个作为与我的实际问题相关的例子。在我的实际问题中(虽然我在执行_ArrayDisplay($aTableData) 时看到表格单元格中的信息,但每当我尝试在控制台中编写它时,都没有输出。
  • @dannytaki 那么你的问题是关于控制台写入而不是数组使用本身。尝试使用消息框。如果它可以显示在 _ArrayDisplay 中,那么它肯定可以通过使用索引来访问。你为什么不做一个错误复制器或发布你的脚本?
  • 我添加了我的脚本,但我认为它不会有太大用处。它要求您拥有Amazon Seller 帐户,否则您将无法查看该页面。我基本上想要的是我最年长的孩子被安置的日期。
猜你喜欢
  • 2018-04-24
  • 1970-01-01
  • 2020-11-11
  • 2012-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-13
相关资源
最近更新 更多