본문 바로가기
Development/Visual Basic | VBScript | ASP

ASP 기본 문법과 함수

by Dev. Jkun 2010. 10. 6.
반응형
ASP 기본 문법과 함수

ASP의 기본 문법

□ 변수, 배열, 개체 선언

Dim 변수이름
Dim 배열이름(배열크기)
;
대개 일반 변수는 정의 하지 않고 사용 한다. 그러나 배열 변수는 정의를 한 후에 사용 해야 한다.

배열 크기 조정

ReDim [preserve] 배열이름(새로운 크기)
; preserve 를 붙이면 원래의 배열 내용을 유지하면서 크기가 조절된다.

개체선언

SET 개체명 = Server.CreateObject("컴포넌트이름")

□ 연산자

산술 연산자 비교 연산자 논리 연산자
설명 기호 설명 기호 설명 기호
지수 ^ 같다 = 논리적 부정 Not
단항 부정 - 같지 않다 <> 논리적 결합 And
곱셈 * 보다 작다 < 논리적 분리 Or
나눗셈 / 보다 크다 > 논리적 배타 Xor
정수 나눗셈 \ 보다 작거나 같다 <= 논리적 동등성 Eqv
나머지 연산 Mod 보다 크거나 같다 >= 논리적 함축성 Imp
덧셈 + 개체 동등성 Is    
뺄셈 -        
문자열 연결 &        
□ 논리 구문들
조건분기(IF) 예제
조건에 따라 실행을 다르게 하는 구문

IF 조건 THEN
    [
참일때 실행문]
[ELSEIF
조건 THEN
    [
참일때 실행문]]
    ...
[ELSE
    [
거짓일때 실행문]]
END IF

page = Request.QueryString("page")
if page="" then
    page=1
end if

s = Request.QueryString("s")
if s="1" then
    s = "
남자"
else
    s = "
여자"
end if
cmd = Request.QueryString("cmd")
if cmd="list" then
    ' list
처리
elseif cmd="view" then
    ' view
처리
elseif cmd="write" then
    ' write
처리
else
    '
에러 처리
end if
다중분기(SELECT CASE) 예제
elseif와 같은 여러개의 조건에 따른 처리를 한다. 

SELECT CASE
    [CASE 경우n
        [
실행문]]
    ...
    [CASE ELSE
        [
실행문]]
END SELECT

cmd = Request.QueryString("cmd")
select case cmd
    case "list"
        ' list
처리
    case "view"
        ' view
처리
    case "write"
        ' write
처리
    case else
        '
에러 처리
end select 
회수가 정해진 반복문(FOR) 예제

일정한 회수 만큼 반복하여 같은 문장을 실행 할때 사용한다.
반복 하는 도중에 EXIT FOR를 만나면 반복을 그만둔다.
증가치가 1인경우 생략 가능하다.

FOR 변수=처음값 TO 최종값 [STEP 증가치]
    [
실행문]
    [EXIT FOR]
NEXT

for i=1 to 5
    Response.Write i
next

for i=1 to 5
    for j=1 to i
        Response.Write "*"
    next
    Response.Write "<br>"
next
컬렉션 요소 만큼 반복(FOR EACH) 예제
개체나 컬렉션의 요소 수만큼 반복한다.

FOR EACH 변수명 IN 컬렉션
    [실행문]
NEXT

for each a in request.ServerVariables
    response.write a & "="
    response.write request.ServerVariables(a)
    response.write "<br>"
next
선행 조건검사 반복 예제

조건이 참인동안(while) 반복하거나, 참이 될때까지(until) 반복 한다.
exit do를 만나면 반복을 그만둔다.
조건을 먼저 검사한 후 실행문을 반복 실행 한다.

DO {WHILE | UNTIL} 조건
    [실행문]
    [Exit Do]
LOOP

a = 10
do while a<1
    Response.Write a
    a = a - 1
loop

결과는
 10987654321
이 출력 된다.
후행 조건검사 반복 예제

do while과 동일 하지만 조건을 뒤에 검사 한다.

DO
    [
실행문]
    [Exit Do]
LOOP {WHILE | UNTIL}
조건

a = 10
do
    Response.Write a
    a = a - 1
loop while a<1

결과는
 1098765432
이 출력 된다.

□ Function과 SUB 루틴

프로그램에서 같은 동작을 하는 부분이 여러번 나올때 Sub나 Function을 이용하면 전체 프로그램의 길이가 짧아 지며, 구조화 시킬 수 있다. Function은 함수형태로 사용되게 작성을 하는 것이고, Sub는 명령어 형태로 사용하게 작성 하는 것이다.

SUB(서브루틴) 정의와 사용 - 결과 값이 없고, 명령어 형태이다.

정의 측 실행 하는 방법
SUB 서브루틴이름(인수1, 인수2 ...)

 
서버루틴 내용
    [exit sub]

END SUB
서브루틴이름  인수1, 인수2 ...

Function(함수) 정의와 사용 - 결과 값이 있고, 함수 형태 이다.

정의 측 실행 하는 방법
Function 함수이름(인수1, 인수2 ...)

 
함수 내용
    [exit function]

    함수이름 = 결과값
END Function
변수 = 함수이름(인수1, 인수2 ...)

VBScript 기본 함수들

변환 함수들
함수 설명
ASC(문자열) 첫문자의 ANSI코드 값 추출
CHR(숫자) 지정됨 숫자에 해당하는 ANSI문자값
CBOOL() 값을 TRUE/FALSE형식으로 변환
BYTE() 값을 BYTE형으로 변환
CDATE() 값을 날짜형으로 변환
CDBL() 값을 DOUBLE(실수)형으로 변환
CINT() 값을 INT(정수)형으로 변환
CLNG() 값을 LONG(정수)형으로 변환
CSNG() 값을 SINGLE(실수)형으로 변환
FIX(실수) 소수점 아래를 버린다.
HEX(수치) 16진수 문자로 바꾼다.
INT(실수) 실수를 정수로 바꾼다.
SGN(수치) 수치의 부호를 -1, 0, 1의 형태로 구한다.
날짜/시간 함수들
함수/예약변수 설명
NOW 현재 서버의 날짜/시각
DATE 현재 서버의 날짜
TIME 현재 서버의 시각
YEAR(날짜값) 날짜에서 년도 추출
MONTH(날짜값) 날짜에서 월 추출
DAY(날짜값) 날짜에서 일 추출
WEEKDAY(날짜값) 날짜에서 요일 추출 1:일, 2:월, 3:화 ... 7:토요일
HOUR(날짜형) 날짜 형식에서 시간 추출
MINUTE(날짜형) 날짜 형식에서 분 추출
SECOND(날짜형) 날짜 형식에서 초 추출
DateAdd(간격, , 날짜) 날짜에서 정해진 간격으로 수만큼 더한다.
정해진 간격은 y : 1년, m : 월, d : 일, h : 시, n : 분, s : 초
수학 관련 함수들
함수 설명
RND()  0부터 1사이의 무작위 난수 발생
ATN() 아크 탄젠트
COS() 코사인
EXP(값) e(자연로그 밑수)의 인자 제곱
LOG(값) 자연로그 값
SIN(각) 사인값
TAN(각) 탄젠트
※ 각은 라디안 값인다.
문자열 관련 함수들
함수 설명
FormatCurrency(v)  통화형식으로 표시
FormatDateTime(v) 날짜형으로 표시
FormatPercent(v) %형식으로 표시(*100을 한다.)
Lcase(s) 소문자로 변환
Ucase(s) 대문자로 변환
Instr(s1, s2) s1에서 s2가 있는 위치
Left(s, v) s에서 왼쪽에서 v글자만큼 추출
Right(s, v) s에서 오른쪽에서 v글자만큼 추출
Mid(s, v1, v2) s에서 v1위치에서 v2글자만큼 추출
Trim(s) s의 좌우 공백(Vbcrlf 포함) 제거
RTrim(s) s의 오른쪽 공백 제거
LTrim(s) s의 왼쪽 공백 제거
Split(s, d) s문자열을 d문자로 나누어서 배열에 저장 한다.
StrReverse(s) s를 거꾸로 한다.
Replace(s, s1, s2) s문자열 에서 s1을 s2로 모두 바꾼다.
변수 테스트 함수들
함수 설명
IsArray(s) s가 배열인가?
IsDate(s) s가 날짜형인가?
IsEmpty(s) s가 변수로 할당 되어 있는가?
IsNull(s) s가 빈 문자열인가?
IsNumeric(s) s가 숫자인가?
IsObject(s) s가 개체인가?
VarType(s) s의 형식을 나타내는 숫자값

 


반응형

댓글