<% '배열선언 Dim arrData(3) %>
배열이 선언된 이후부터는 배열 크기가 고정되어 사이즈 조절이 불가능하다.
Error : This array is fixed or temporarily locked
<% '변수 선언 Dim arrData() '또는 Dim arrData() '배열 크기 지정 ReDim arrData(2) '배열 할당 arrData(0) = "샘플데이터1" arrData(1) = "샘플데이터2" arrData(2) = "샘플데이터3" '배열 크기 변경 ReDim arrData(3) arrData(3) = "샘플데이터4" %>
이렇게 선언할 경우 크기 조절이 가능하지만 다시 크기를 변경하게 되면 기존 데이터가 날아가버린다.
.add() 또는 .remove() 같은 동작을 위해 배열을 하나씩 늘리거나 줄이거나 하는 동적인 배열이 필요할 경우에는
<% Dim arrData() Dim item_count, idx item_count = 0 '배열 추가 item_count = item_count + 1 ReDim Preserve arrData(item_count-1) arrData(item_count-1) = "샘플데이터"& item_count '배열 추가 item_count = item_count + 1 ReDim Preserve arrData(item_count-1) arrData(item_count-1) = "샘플데이터"& item_count '배열 추가 item_count = item_count + 1 ReDim Preserve arrData(item_count-1) arrData(item_count-1) = "샘플데이터"& item_count '배열 내용 출력 For idx = 0 To UBound(arrData) Response.Write "- "& arrData(idx)&"<br>" Next %>
이와 같이 해주면 기존 데이터를 유지하면서 배열 크기를 늘릴 수 있다.
주의할 점은 변수 선언시 arrData() 처럼 뒤에 () 를 반드시 붙여줘야한다.
Error : Type mismatch
그리고 배열 재선언시 ReDim 다음에 Preserve를 붙여줘야 기존 데이터를 보존할 수 있다.