2

簡単な例:

Dim d, a(0)
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athens"
d.Add "b", "Belgrade"
d.Add "c", "Cairo"
Set a(0) = d

WScript.Echo(TypeName(a))

出力:

Variant()

このオブジェクトにアクセスする方法がわかりません。カウントは 3 ですが、空のようです

Google がこの質問に対して有用な結果をリストしていないのは驚くべきことです - how to assign dictionary in array?

私が見つけた最も近いものは、この未回答のリンクでした

私の問題は、一時的な辞書を作成するループがあることです。これは、辞書オブジェクトを含む単純な1次元配列に供給することを計画していましたが、成功しませんでした

また、辞書のキーと辞書の項目 (値) に対して別々に 2 つの配列が作成されるこのリンクのようなものも見つけました。

では、これは VBScript で可能なのでしょうか?

4

2 に答える 2

3

私はあなたの質問を誤解しているかもしれませんが、辞書には次のようにアクセスできます:

WScript.Echo(a(0).Item("b"))

編集

このコード:

Dim d, a(0)
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athens"
d.Add "b", "Belgrade"
d.Add "c", "Cairo"
Set a(0) = d
WScript.Echo(a(0).Item("b"))

dim x
x = d.Items

dim i
for i = lbound(x) to ubound(x)
    WScript.Echo(x(i))
next

Windows 7 マシンで次の出力を生成します。

C:\>cscript test.vbs
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.

Belgrade
Athens
Belgrade
Cairo

C:\>
于 2012-05-23T10:45:39.030 に答える
0

例 :

Dim d
Set d = CreateObject("Scripting.Dictionary") 
d.Add "a", "Athens" 
d.Add "b", "Belgrade" 
d.Add "c", "Cairo" 

WScript.Echo(d("a")) '=> Athens

d("a") = "Brussels"

WScript.Echo(d("a")) '=> Brussels

a = d.Keys   ' Get the keys.
b = d.Items
For i = 0 To d.Count -1 ' Iterate the array.
  wscript.echo a(i) & " " & b(i)
Next


'=>a Brussels
'=>b Belgrade
'=>c Cairo
于 2012-05-23T11:06:56.240 に答える