下面是我正在使用的代码。
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()
名称和版本方法但在这里我收到错误
输入不匹配。
有人可以告诉我如何将其与名称和版本一起打印?
任何帮助都将不胜感激。
答案 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)