获取数组内部数组的方法的值

时间:2015-10-19 13:58:33

标签: arrays vbscript

下面是我正在使用的代码。

Dim OBD
Dim pl
Dim plg()
Set OBD = CreateObject("OBD.OBDManager")
OBD.ConnectDB
If OBD.DBConnected Then
  pl = OBD.CVar(OBD.QueryOBDPolicies(Nothing, "", "", "", "", "", True,2,1))
  For i = LBound(pl) To UBound(pl)
    WScript.Echo pl(i).GetName() & "Version: " & pl(i).GetVersionString()
  Next
End If

Set OBD = Nothing

GetName一样,还有另一种方法,我有兴趣打印结果,这个方法是一个数组。

我尝试简单地打印pl(i).GetpgList()名称和版本方法但在这里我收到错误

  

输入不匹配。

有人可以告诉我如何将其与名称和版本一起打印?

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

因为您要返回一个Object数组,所以使用For Each Object In Objects方法迭代要容易得多。

至于显示GetpgList()的结果只是使用您之前通过索引进行迭代的相同方法(或者甚至使用另一个For Each,这完全取决于您)。就个人而言,因为我不需要创建一个计数器变量,所以我更喜欢For index = ... In ...方法。

Dim OBD
Dim pl, plg
Dim i

Set OBD = CreateObject("OBD.OBDManager")
OBD.ConnectDB
If OBD.DBConnected Then
  pl = OBD.CVar(OBD.QueryOBDPolicies(Nothing, "", "", "", "", "", True,2,1))
  For Each obj In pl
    WScript.Echo obj.GetName() & ", Version: " & obj.GetVersionString()
    plg = obj.GetpgList()
    For i = LBound(plg) To UBound(plg)
      WScript.Echo "Value " & i & ": " & plg(i)
    Next
  Next
End If
Set OBD = Nothing

如果您不想循环访问这些值并希望返回数组的特定元素,则可以执行类似的操作(如果使用现有的示例代码);

'Result of GetpgList() is assumed to be a 1 dimensional array.
'This example explicitly pulls out the first value.

yourvariable = pl(i).GetpgList()(0)

或使用此答案中的代码示例

yourvariable = obj.GetpgList()(0)