ClassicASP 배열선언 및 사용하기
페이지 정보
본문
1차원 배열의 선언.
<% Dim arrAge(9) %>
이는, arrAge 라는 1차원 배열을 선언하는데, 10개의 값을 가지는 것으로 선언하는 것이다.
배열은 0부터 시작하고, 여기서 9로 지정하였으므로, 0 ~ 9 값이 10개의 값을 가진다.
배열에 값을 넣을때는
<% arrAge(0) = "12" %>
라고 하면 되고,
출력할때는
<% response.write arrAge(0) %>
하면 된다.
그런데, 배열의 이름은 알지만, 몇개의 값이 들어있는지 알 수 없을때는,
아래와 같이 이용할 수 있다.
<%
Dim arrAge, count, i
count = UBound(arrAge)
for i=0 to count
response.write "<br>" & arrAge(i)
next
%>
여기서 UBound 는 배열의 크기를 체크하는 함수로, 단지 배열에서만 사용하는 것이 아니라,
다음과 같은 경우에도 사용할 수 있다.
그것은, 문자열을 어떤 기준 문자열로 분할하는 함수인 split 함수에서 이용하는 것이다.
<%
a = "A:B"
temp = split(a,":")
count = UBound(temp)
response.Write temp(0) &"<br />"
response.write count &"<br />"
%>
split 함수를 이용해 a 라는 변수에 담긴 문자열을 구분 문자인 : 문자로 나눈 정보를 UBound 로 체크하면,
1 이라는 값이 출력된다.
즉, : 라는 문자가 1개 들어 있다는 뜻이며, 배열로 치자면, 0~1 의 배열을 갖는것과 동일하게 된다.
출력시에도, temp(0) 은 A, temp(1) 은 B 가 된다.
----------------------------------------------
다차원 배열.
배열은 다른 언어에서 사용하는 개념과 동일하다.
다차원 배열은 아래와 같이 선언한다.
<% Dim arrTable(3,9) %>
이렇게 선언되면, 앞쪽이 0~3 까지의 값을 가지는 4개의 값을 가지고,
뒷쪽은 0~9 까지의 값을 가지는 10개의 값을 가진다.
그래서, 이 배열은 4×10= 40 개의 값을 가질 수 있다.
지식이 짧아서인지..
다차원 배열의 크기를 체크하는 함수는 없는듯 하다.
--------------------------------------------
가변배열.
가변 배열이란, 중간에 배열의 크기가 바뀌는 것을 말한다.
ReDim 선언문을 이용해 배열의 크기를 바꾸는 것인데,
<%
Dim colors()
ReDim colors(3)
colors(0) = "Black"
colors(1) = "White"
for i=0 to UBound(colors)
response.write "<Br>" & colors(i)
next
%>
이렇게 지정된 배열을 변경하면,
<%
ReDim Preserve colors(4)
colors(4) = "Green"
for i=0 to UBound(colors)
response.write "<Br>" & colors(i)
next
%>
여기서 주의할점은, 최초 배열선언시 Dim colors() 으로 선언한후, ReDim colors(3) 으로 두번에 걸쳐 배열을 선언했다는 점이다.
이유는, 최초 배열 선언시 배열의 크기를 지정해서 선언하면, 잠금 상태가 되어 ReDim 을 사용할 수 없게 되기 때문이다.
따라서, 가변배열로 사용하려면 반드시, 최초 선언시 배열의 크기를 지정하지 않아야 한다.
만약,
최초에 Dim colors(3) 으로 선언한후, 그 하단에서 ReDim colors(4) 로 하려하면 아래의 그림과 같은 에러를 만나게 된다.
그리고, ReDim 을 사용하게 되면, 이전의 배열에 저장되어 있던 값이 사라지게 되는데,
이때, 값이 사라지는 것을 막기 위해서 Preserve 명령을 이용한다.
즉, 아래와 같이
<%
Dim colors()
ReDim colors(3)
colors(0) = "Green"
ReDim Preserve colors(4)
colors(4) = "Yellow"
%>
위처럼 ReDim 과 함께 Preserve 명령을 이용해서 배열의 크기를 바꾸면, 이전의 값이 지워지지 않고 유지된다.
다만, 배열의 크기를 줄이면, 없어진 배열위치의 값은 사라지므로 주의할것
출처
http://fendee.egloos.com/6981166
<% Dim arrAge(9) %>
이는, arrAge 라는 1차원 배열을 선언하는데, 10개의 값을 가지는 것으로 선언하는 것이다.
배열은 0부터 시작하고, 여기서 9로 지정하였으므로, 0 ~ 9 값이 10개의 값을 가진다.
배열에 값을 넣을때는
<% arrAge(0) = "12" %>
라고 하면 되고,
출력할때는
<% response.write arrAge(0) %>
하면 된다.
그런데, 배열의 이름은 알지만, 몇개의 값이 들어있는지 알 수 없을때는,
아래와 같이 이용할 수 있다.
<%
Dim arrAge, count, i
count = UBound(arrAge)
for i=0 to count
response.write "<br>" & arrAge(i)
next
%>
여기서 UBound 는 배열의 크기를 체크하는 함수로, 단지 배열에서만 사용하는 것이 아니라,
다음과 같은 경우에도 사용할 수 있다.
그것은, 문자열을 어떤 기준 문자열로 분할하는 함수인 split 함수에서 이용하는 것이다.
<%
a = "A:B"
temp = split(a,":")
count = UBound(temp)
response.Write temp(0) &"<br />"
response.write count &"<br />"
%>
split 함수를 이용해 a 라는 변수에 담긴 문자열을 구분 문자인 : 문자로 나눈 정보를 UBound 로 체크하면,
1 이라는 값이 출력된다.
즉, : 라는 문자가 1개 들어 있다는 뜻이며, 배열로 치자면, 0~1 의 배열을 갖는것과 동일하게 된다.
출력시에도, temp(0) 은 A, temp(1) 은 B 가 된다.
----------------------------------------------
다차원 배열.
배열은 다른 언어에서 사용하는 개념과 동일하다.
다차원 배열은 아래와 같이 선언한다.
<% Dim arrTable(3,9) %>
이렇게 선언되면, 앞쪽이 0~3 까지의 값을 가지는 4개의 값을 가지고,
뒷쪽은 0~9 까지의 값을 가지는 10개의 값을 가진다.
그래서, 이 배열은 4×10= 40 개의 값을 가질 수 있다.
지식이 짧아서인지..
다차원 배열의 크기를 체크하는 함수는 없는듯 하다.
--------------------------------------------
가변배열.
가변 배열이란, 중간에 배열의 크기가 바뀌는 것을 말한다.
ReDim 선언문을 이용해 배열의 크기를 바꾸는 것인데,
<%
Dim colors()
ReDim colors(3)
colors(0) = "Black"
colors(1) = "White"
for i=0 to UBound(colors)
response.write "<Br>" & colors(i)
next
%>
이렇게 지정된 배열을 변경하면,
<%
ReDim Preserve colors(4)
colors(4) = "Green"
for i=0 to UBound(colors)
response.write "<Br>" & colors(i)
next
%>
여기서 주의할점은, 최초 배열선언시 Dim colors() 으로 선언한후, ReDim colors(3) 으로 두번에 걸쳐 배열을 선언했다는 점이다.
이유는, 최초 배열 선언시 배열의 크기를 지정해서 선언하면, 잠금 상태가 되어 ReDim 을 사용할 수 없게 되기 때문이다.
따라서, 가변배열로 사용하려면 반드시, 최초 선언시 배열의 크기를 지정하지 않아야 한다.
만약,
최초에 Dim colors(3) 으로 선언한후, 그 하단에서 ReDim colors(4) 로 하려하면 아래의 그림과 같은 에러를 만나게 된다.
그리고, ReDim 을 사용하게 되면, 이전의 배열에 저장되어 있던 값이 사라지게 되는데,
이때, 값이 사라지는 것을 막기 위해서 Preserve 명령을 이용한다.
즉, 아래와 같이
<%
Dim colors()
ReDim colors(3)
colors(0) = "Green"
ReDim Preserve colors(4)
colors(4) = "Yellow"
%>
위처럼 ReDim 과 함께 Preserve 명령을 이용해서 배열의 크기를 바꾸면, 이전의 값이 지워지지 않고 유지된다.
다만, 배열의 크기를 줄이면, 없어진 배열위치의 값은 사라지므로 주의할것
출처
http://fendee.egloos.com/6981166
댓글목록
등록된 댓글이 없습니다.