' 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
이렇게 하면 coordinatesList 컬렉션에 각각의 좌표를 표현하는 배열이 추가됩니다.
각 배열은 2개의 요소를 가지며, 첫 번째 요소는 x 좌표이고 두 번째 요소는 y 좌표입니다. 이러한 구조를 활용하여 데이터를 저장하고 처리할 수 있습니다.
반응형
coordinatesList.Add가 파이썬의 append와 같은 기능을 한다.
coordinatesList.Add 메서드는 일종의 "추가" 작업을 수행하며, 리스트나 컬렉션에 새로운 항목을 마지막에 추가합니다. 이것은 많은 프로그래밍 언어에서의 "append" 작업과 유사한 역할을 합니다. 새로운 항목이 리스트의 끝에 추가되므로 리스트의 크기가 동적으로 증가할 수 있습니다.
따라서 coordinatesList.Add를 사용하여 컬렉션에 새 항목을 추가하는 것은 데이터를 리스트나 컬렉션에 덧붙이는 작업이라고 볼 수 있습니다.
Array()는 Dim선언이 필요하지 않다.
Array()는 VBScript 내장 함수로, 배열을 생성하고 초기화하는 데 사용됩니다.
이 함수를 사용할 때는 Dim 선언이 필요하지 않습니다.
Array() 함수를 사용하면 배열을 선언과 동시에 초기화할 수 있습니다.
예를 들어, 다음과 같이 Array() 함수를 사용하여 배열을 생성하고 초기화할 수 있습니다.
국내 기업 임직원들이 해외 본사에서 받은 주식을 매매하거나 해외 금융기관에 예치하면 외국환거래법 위반으로 인해 제재 가능성 존재.
금융감독원은 국내 임직원이 해외 본사 상장주식을 해외 증권사를 통해 매매하거나 해외 금융기관에 예치할 경우 법적 제재가 가해질 수 있음을 경고.
주식보상 제도로 인해 국내 임직원들이 해외 본사 상장주식을 매매하는 경우 증가하고 있으며, 이에 따라 국내 투자중개업자인 국내 증권사를 통해 매매해야 함. 위반 시 과태료 등의 행정처분 가능성 있으며, 자진 신고 시 과태료 50% 감경 가능. 따라서 해외 본사 주식 매매 시 '매매위탁(국내증권사)→해외주식 인수지시→해외주식 인도→본인 계좌 입고→매매' 과정 필요.
주의사항.
위반금액 1만불 이하시 경고, 초과시 과태료.
매매 후 차익에 대한 위반액이 100만원 보다 적으면 "100만원"을 납부.
매매 후 차익에 대한 위반액이 100만원보다 크면, "위반금액 x 2%" 를 납부 (만약 자진신고시 50% 깎아줌)
해외 보유금 (주식 및 채권 등)의 평가금액이 5억원을 초과시, 국세청에 신고해야 함. (미 신고시, 미신고 금액에 대한 과태료 10%)