ASP의 기본 문법
□ 변수, 배열, 개체 선언
Dim 변수이름
Dim 배열이름(배열크기)
; 대개 일반 변수는 정의 하지 않고 사용 한다. 그러나 배열 변수는 정의를 한 후에 사용 해야 한다.배열 크기 조정
ReDim [preserve] 배열이름(새로운 크기)
; preserve 를 붙이면 원래의 배열 내용을 유지하면서 크기가 조절된다.개체선언
SET 개체명 = Server.CreateObject("컴포넌트이름")
□ 연산자
산술 연산자 | 비교 연산자 | 논리 연산자 | |||
설명 | 기호 | 설명 | 기호 | 설명 | 기호 |
---|---|---|---|---|---|
지수 | ^ | 같다 | = | 논리적 부정 | Not |
단항 부정 | - | 같지 않다 | <> | 논리적 결합 | And |
곱셈 | * | 보다 작다 | < | 논리적 분리 | Or |
나눗셈 | / | 보다 크다 | > | 논리적 배타 | Xor |
정수 나눗셈 | \ | 보다 작거나 같다 | <= | 논리적 동등성 | Eqv |
나머지 연산 | Mod | 보다 크거나 같다 | >= | 논리적 함축성 | Imp |
덧셈 | + | 개체 동등성 | Is | ||
뺄셈 | - | ||||
문자열 연결 | & |
□ 논리 구문들
조건분기(IF) | 예제 |
조건에 따라 실행을 다르게 하는 구문
IF 조건 THEN |
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 식 |
cmd = Request.QueryString("cmd") select case cmd case "list" ' list 처리 case "view" ' view 처리 case "write" ' write 처리 case else ' 에러 처리 end select |
회수가 정해진 반복문(FOR) | 예제 |
일정한 회수 만큼 반복하여 같은 문장을 실행 할때 사용한다. FOR 변수=처음값 TO 최종값 [STEP 증가치] |
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 컬렉션 |
for each a in request.ServerVariables response.write a & "=" response.write request.ServerVariables(a) response.write "<br>" next |
선행 조건검사 반복 | 예제 |
조건이 참인동안(while) 반복하거나, 참이 될때까지(until) 반복 한다. DO {WHILE | UNTIL} 조건 |
a = 10 do while a<1 Response.Write a a = a - 1 loop 결과는 10987654321 이 출력 된다. |
후행 조건검사 반복 | 예제 |
do while과 동일 하지만 조건을 뒤에 검사 한다. DO |
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의 형식을 나타내는 숫자값
'Development > Visual Basic | VBScript | ASP' 카테고리의 다른 글
ABC 업로드 컴포넌트 속성 (0) | 2010.12.01 |
---|---|
ASP 날짜 관련 (0) | 2010.10.06 |
ASP 개발. UI 코드와 서버사이드 스크립트의 분리 (0) | 2010.10.05 |
ASP 응용 프로그램의 문자열 처리 성능 향상 (0) | 2010.09.20 |
성능 및 스타일 향상에 도움이 되는 28가지 ASP 팁 (0) | 2010.07.05 |
댓글