상세 컨텐츠

본문 제목

[Classic ASP] asp의 배열의 정적, 동적 선언

IT컴퓨터

by 자기 2022. 11. 5. 08:16

본문

728x90

「 classic ASP : 배열 」


classic ASP는 워낙 구식 웹스크립트 언어라 요즘은 잘 사용하지 않는다. 새롭게 웹개발을 배우고 있거나 배우려고 하는 친구들에게 ASP가 뭔지 아냐고 물어보면 대부분 모를 정도이다. 그나마 PHP는 좀 들어봤는데 ASP는 모른단다.

ASP는 원래 classic ASP가 아니었는데 나중에 ASP.net이 나오면서 기존 ASP를 classic ASP라고 불리워지기 시작했다. 원래의 이름을 빼앗긴 기분.

 

 

 

오늘은 ASP 코딩을 하면서 배열에 대해 또 헷갈리는 부분이 있어서 다시금 정리해 보고자 한다.

배열이 뭔지에 대한 정의 따위는 집어치우고 그냥 ASP에서 배열을 정의하고 사용하는 기본 상식과 배열을 이용한 숫자 정렬 샘플을 간단히 알아보겠다.

요즘 잘 사용하지 않는 개발언어이지만 아직도 이 언어로 유지보수가 되고 있는 사이트가 많기 때문에.. 그냥 버릴 수도 없다.

 

 

 

정적 ASP 배열 선언

정적으로 배열을 선언한다는 것은 배열의 크기를 미리 정해놓는다는 뜻이다.

asp에서 정적 배열 선언의 방법은 아래 두 가지가 있다.

Dim arrTemp(3)

arrTemp(0) = "aaa"
arrTemp(1) = "bbb"
arrTemp(2) = "ccc"
arrTemp(3) = "ddd"
 

arrTemp라는 이름의 변수를 배열로 쓰겠다고 정의하면서 그 배열의 크기를 3으로 정하였다.

괄호안 숫자는 첨자이다. asp에서 배열은 0 base이므로 첨자가 3이면 0부터 3까지의 공간 즉 총 4개의 변수를 담을 수 있는 공간이 마련된다.

 

 

Dim arrTemp

arrTemp = Array("aaa", "bbb", "ccc", "dddd")

 

arrTemp라는 이름의 변수를 Dim 으로 정의하면서 각각의 첨자별로 값을 초기화하지 않고 위와 같이 Array함수를 이용하여 괄호 안에 순서대로 값을 넣어줌으로써 한번에 초기화할 수도 있다.

동적 ASP 배열 선언

동적으로 배열을 선언하는 경우도 있다. 배열의 크기를 처음부터 알 수 없는 경우가 자주 발생하는데 이때 동적 배열을 선언하여 사용하면 된다.

Dim arrTemp()
ReDim arrTemp(2)

arrTemp(0) = "aaa"
arrTemp(1) = "bbb"
arrTemp(2) = "ccc"

ReDim Preserve arrTemp(3)
arrTemp(3) = "ddd"

Dim으로 배열을 선언할 때 첨자를 입력하고 나중에 ReDim으로 재선언하면서 크기를 지정해 줄 수 있다. 그런데 또다시 배열 크기의 변경이 있을 때에 ReDim Preserve 예약어를 사용하여 배열의 크기를 확장해 준다.

배열 정렬하기 샘플코드

aaa = "3,5,7,1,8"

aa = split(aaa,",")

이 배열을 크기 순서대로

aaa = "1,3,5,7,8"

로 정렬하는 방법이다.

 

<%
    Data = "3,5,7,1,8"

    S_Data = Split(Data,",")

    For i = Lbound(S_Data) to Ubound(S_Data)
        Min_Data = S_Data(i)
        For j = (1+i) to Ubound(S_Data)
            If Ccur(S_Data(j)) < Ccur(Min_Data) Then
                Min_Data = S_Data(j)
                S_Data(j) = S_Data(i)
                S_Data(i) = Min_Data
            End If
        Next
        Response.Write S_Data(i)
    Next

%>

추가로. 배열의 크기를 구하는 방법

Ubound(arrTemp)

728x90

관련글 더보기

댓글 영역