MW211 EXIT

devlog
VBScript/連想二次元配列
2021年02月05日
キーの配下にスカラ配列がぶら下がるテーブルをクラスで実装した例。
┌──────────────────────────────────────┐
│Option Explicit                                                             │
│Dim objTable                                                                │
│Set objTable = New ClassTable                                               │
│Call objTable.Insert("尾張", "織田信長")                                    │
│Call objTable.Insert("尾張", "豊臣秀吉")                                    │
│Call objTable.Insert("三河", "徳川家康")                                    │
│Dim row, column                                                             │
│Set row = objTable.GetList("尾張")                                          │
│For Each column In row                                                      │
│    MsgBox column                                                           │
│Next                                                                        │
│Set row = objTable.GetList("三河")                                          │
│For Each column In row                                                      │
│    MsgBox column                                                           │
│Next                                                                        │
│WScript.Quit(0)                                                             │
│'***************************************************************************│
│'  クラス:連想二次元配列                                                   │
│'***************************************************************************│
│Class ClassTable                                                            │
│    Private mTable                                                          │
│    '=======================================================================│
│    '  コンストラクタ                                                       │
│    '=======================================================================│
│    Private Sub Class_Initialize                                            │
│        Set mTable = CreateObject("Scripting.Dictionary")                   │
│    End Sub                                                                 │
│    '=======================================================================│
│    '  デストラクタ                                                         │
│    '=======================================================================│
│    Private Sub Class_Terminate                                             │
│    End Sub                                                                 │
│    '=======================================================================│
│    '  メソッド:追加                                                       │
│    '=======================================================================│
│    Public Sub Insert(inKey, inValue)                                       │
│        If Not mTable.Exists(inKey) Then                                    │
│            Set mTable(inKey) = CreateObject("System.Collections.ArrayList")│
│        End If                                                              │
│        Call mTable(inKey).Add(inValue)                                     │
│    End Sub                                                                 │
│    '=======================================================================│
│    '  メソッド:取得                                                       │
│    '=======================================================================│
│    Public Function GetList(inKey)                                          │
│        Set GetList = mTable(inKey)                                         │
│    End Function                                                            │
│    '=======================================================================│
│End Class                                                                   │
│'***************************************************************************│
└──────────────────────────────────────┘
分類:WSH・VBS