VBS(Visual Basic Script)

[Visual Basic] 비주얼베이직 스크립트 (VBScript), 딕셔너리 (Dictionary)에 List, Array (리스트, 배열) 활용하기

안산드레아스 2023. 9. 8. 12:46
반응형

 

VBscript에서 Dictionary를 만들고 사용하는 간단한 방법과 설명은 아래 링크를 참고.

https://ansan-survivor.tistory.com/1627

 

[Visual Basic] 비주얼베이직 스크립트 (VBScript), 딕셔너리 (Dictionary) 만들기 사용하기 특징

딕셔너리 장점. 1. 데이터 검색,추가,수정,삭제 쉬움 2. 간단히 사용 3. 모든 데이터 (배열, 딕셔너리)를 넣어서 사용가능. 갖고있는 속성 (Property) - Count : 현재 저장 갯수 반환 - Item("Key값") : "Key값"

ansan-survivor.tistory.com

 

 

마치 파이썬으로 치면,

Key값이 a이고 Value가 List인 경우 (예를 들면 아래와 같은)

이러한 딕셔너리를 VBScript로 만들고 싶을 때 사용할 수 있는 샘플코드이다.

dictSample = {key: "a", Value: ["1-2", "2-3", "3-4"] }

 

반응형

 

아래 샘플은 key값이 a,b,c 이고, 그때 사용할 수 있는 List를 담는 예제이다.

간단하게 자주 사용할 수 있는, 응용할 수 있는 샘플 코드이다.

' Dictionary object 선언
Dim myDictionary
Set myDictionary = CreateObject("Scripting.Dictionary")

' key-value 등록법
myDictionary.Add "a", Array("1-2", "2-3", "3-4")
myDictionary.Add "b", Array("5-6", "6-7", "7-8")
myDictionary.Add "c", Array("9-10", "10-11", "11-12")

' value호출 방법
msgbox "Value associated with 'a':"
For Each item In myDictionary("a")
    msgbox item
Next

msgbox "Value associated with 'b':"
For Each item In myDictionary("b")
    msgbox item
Next

msgbox "Value associated with 'c':"
For Each item In myDictionary("c")
    msgbox item
Next

그림으로 그려보자면 아래와 같다.

 

 

결과 확인

아래와 같은 msgbox가 순서대로 출력된다.

(나머지 생략)

 

즉 Key값 먼저 출력되고 그 뒤에 value값이 따라서 출력된다.

이를 통해 VBScript에서 어떻게 Dictionary를 쓰고 Key값 호출, Value값 호출을 하는지 보고 수정해서 쓰면된다.

 

위 예문에서는 For Each문을 통해 한꺼번에 모두다 출력하도록 했지만, 만약 List 내부의 특정 값에 접근하고 싶다면 아래와 같이 접근한다.

' Create a new Dictionary object
Dim myDictionary
Set myDictionary = CreateObject("Scripting.Dictionary")

' Add key-value pairs to the dictionary
myDictionary.Add "a", Array("1-2", "2-3", "3-4")

' Access the first item in the array associated with "a" key
Dim firstItem
firstItem = myDictionary("a")(0)

' Display the first item using MsgBox
MsgBox "First item associated with 'a' key: " & firstItem

(결과)

 

 

* 만약에 생성한 "a" Dictionary에 있는 Array에 추가로 값을 더 넣고 싶다면 아래 샘플 코드...

->

이 코드에서는 existingArray 변수에 "a" 키에 연결된 배열을 가져와서, 새로운 값을 추가하려는 newArray와 결합하여 combinedArray에 저장합니다.

그런 다음 "a" 키에 새로운 combinedArray를 할당합니다. 이렇게 하면 오류 없이 값을 추가할 수 있습니다.

' Create a new Dictionary object
Dim myDictionary
Set myDictionary = CreateObject("Scripting.Dictionary")

' Add key-value pairs to the dictionary
myDictionary.Add "a", Array("1-2", "2-3", "3-4")

' Access the first item in the array associated with "a" key
Dim firstItem
firstItem = myDictionary("a")(0)

' Get the existing array associated with "a" key
existingArray = myDictionary("a")

' Create a new array with additional values
Dim newArray
newArray = Array("apple", "banana", "orange")

' Combine the existing and new arrays
ReDim combinedArray(UBound(existingArray) + UBound(newArray) + 1)
Dim i

For i = 0 To UBound(existingArray)
    combinedArray(i) = existingArray(i)
Next

For i = UBound(existingArray) + 1 To UBound(existingArray) + UBound(newArray) + 1
    combinedArray(i) = newArray(i - UBound(existingArray) - 1)
Next

' Update the "a" key in the dictionary with the combined array
myDictionary("a") = combinedArray

' Output verification
MsgBox "Values associated with 'a':"
For Each item In myDictionary("a")
    MsgBox item
Next

 

 

반응형