VBS(Visual Basic Script)

[Visual Basic] 비주얼베이직 스크립트 (VBScript), Array와 List사용, 동적 List Append 하기, 좌표점 추가 List

안산드레아스 2023. 8. 30. 12:13
반응형

 

파이썬은 List가 있어서 index를 쉽게 컨트롤할 수 있지만, VBScript에는 List가 없다.

VBScript는 "Array" 배열과, Collection이 있으며, Collection을 이용해 List처럼 사용할 수 있다.

 

  1. 배열(Array):
    • 배열은 동일한 유형의 데이터 항목을 순차적으로 저장하는 데 사용됩니다.
    • 각 항목은 인덱스(index)로 식별됩니다. 인덱스는 0부터 시작하여 배열의 크기보다 하나 적은 값을 가집니다.
    • 예를 들어, Dim numbers(4)와 같이 선언하면 0부터 4까지 총 5개의 요소를 가진 배열이 생성됩니다.
    • 배열은 고정 크기를 가지며, 크기를 변경하려면 새로운 배열을 만들고 데이터를 복사해야 합니다.
  2. 리스트(List):
    • VBScript에서 기본적으로 리스트 자료형은 제공되지 않습니다. 하지만 컬렉션(Collection)을 활용하여 리스트와 유사한 동작을 구현할 수 있습니다.
    • 컬렉션은 여러 항목을 저장하는 데 사용되며, 크기가 동적으로 조정될 수 있습니다.
    • Dictionary나 ArrayList 등의 컬렉션을 활용하여 리스트와 비슷한 기능을 구현할 수 있습니다.
    • 컬렉션은 인덱스뿐만 아니라 특정 항목의 이름(Key)을 사용하여 데이터에 접근할 수 있습니다.

 

배열 예제:

Dim numbers(4) 
numbers(0) = 10 
numbers(1) = 20 
numbers(2) = 30 
numbers(3) = 40 
numbers(4) = 50

컬렉션(리스트) 예제:

Set list = CreateObject("System.Collections.ArrayList") 
list.Add 10 
list.Add 20 
list.Add 30 
list.Add 40 
list.Add 50

요약하면, VBScript에서 배열은 정적 크기의 동일한 유형 데이터를 순차적으로 저장하는데 사용되며, 컬렉션을 활용하여 동적 크기의 리스트와 비슷한 기능을 구현할 수 있습니다.

 

 

 

예제 (x,y) 와 같은 좌표점을 하나의 List로 담을 때,
예를들면 아래와 같이 List 내부에 값들을 넣고자 할 때,
: [ (10,20),(20,30),(30,40),(40,50) ]

VBScript에서는 기본적으로 튜플(tuple)이나 좌표와 같은 복합 데이터 구조를 제공하지 않습니다. 그러나 여러 가지 방법을 사용하여 이러한 구조를 나타내고 처리할 수 있습니다. 먼저, 2D 배열을 사용하여 각 항목을 좌표로 나타내는 방법을 보여드리겠습니다.

2D 배열을 사용한 예제:

 
Dim coordinates(4, 1) 
coordinates(0, 0) = 10 
coordinates(0, 1) = 20 
coordinates(1, 0) = 20 
coordinates(1, 1) = 30 
coordinates(2, 0) = 30 
coordinates(2, 1) = 40 
coordinates(3, 0) = 40 
coordinates(3, 1) = 50

 

하지만, 좀 더 간편하게 구조를 다루려면 VBScript에서는 컬렉션(Collection)을 사용하여 좀 더 유연한 데이터 구조를 구현할 수 있습니다. 아래는 컬렉션을 사용한 예제입니다.

 

컬렉션을 사용한 예제:

Set coordinatesList = CreateObject("System.Collections.ArrayList") 
coordinatesList.Add Array(10, 20)
coordinatesList.Add Array(20, 30) 
coordinatesList.Add Array(30, 40) 
coordinatesList.Add Array(40, 50)
 

이렇게 하면 coordinatesList 컬렉션에 각각의 좌표를 표현하는 배열이 추가됩니다.

각 배열은 2개의 요소를 가지며, 첫 번째 요소는 x 좌표이고 두 번째 요소는 y 좌표입니다. 이러한 구조를 활용하여 데이터를 저장하고 처리할 수 있습니다.

 

 

반응형

 

 

 
 

coordinatesList.Add가 파이썬의 append와 같은 기능을 한다.

coordinatesList.Add 메서드는 일종의 "추가" 작업을 수행하며, 리스트나 컬렉션에 새로운 항목을 마지막에 추가합니다. 이것은 많은 프로그래밍 언어에서의 "append" 작업과 유사한 역할을 합니다. 새로운 항목이 리스트의 끝에 추가되므로 리스트의 크기가 동적으로 증가할 수 있습니다.

 

따라서 coordinatesList.Add를 사용하여 컬렉션에 새 항목을 추가하는 것은 데이터를 리스트나 컬렉션에 덧붙이는 작업이라고 볼 수 있습니다.

 
 
 
 

 Array()는 Dim선언이 필요하지 않다.

 

Array()는 VBScript 내장 함수로, 배열을 생성하고 초기화하는 데 사용됩니다.

이 함수를 사용할 때는 Dim 선언이 필요하지 않습니다.

Array() 함수를 사용하면 배열을 선언과 동시에 초기화할 수 있습니다.

예를 들어, 다음과 같이 Array() 함수를 사용하여 배열을 생성하고 초기화할 수 있습니다.

 
Dim coordinates 
coordinates = Array(Array(10, 20), Array(20, 30), Array(30, 40), Array(40, 50))

 

위의 코드에서 coordinates는 2D 배열이 됩니다. Array() 함수는 초기화된 값을 가진 배열을 반환하므로, Dim 선언이 따로 필요하지 않습니다.

 

==================================================

 

** Msgbox로 디버깅방법.

아래와 같이 각 Array의 좌표를 확인해볼 수 있다.

MsgBox "Added coordinates: (" & X & ", " & Y & ")"

 

 

 

반응형