출처 : http://maru7937.egloos.com/4840019

 선언한 크기 까지만 가능하다. 
   만약 그 이상의 값을 할당하면 에러가 발생한다.
   위에서는 2로 크기를 선언 했기 때문에 MyArray(2) 까지만 가능하다.


    ② Redim

  * 배열 크기의 재선언에 사용한다.

   예제 ②
     <%
      Dim MyArray_1()

      Redim MyArray_1(3)
          MyArray_1(0) = "대한민국"
          MyArray_1(1) = "터키"
          MyArray_1(2) = "세네갈"

      Redim MyArray_1(5) '배열의 크기를 재선언함(배열의 크기가 재선언 되면 기존

의 값들은 지워진다.)

      response.write MyArray_1(0) '값이 지워졌기 때문에 출력값이 없다..
     %>


     
  * redim 의 사용은 위처럼, 처음 배열 선언시에 배열의 크기를 정해 주지 않았을 때

에만 가능하다.
    예제 ① 에서 처럼 배열의 선언시에 크기를 선언한 경우에는 Redim 을 사용할 수

없다.


    ③ Preserve

 * 위의 예제 ②에서 
   Redim preserve Myarray_1(5) 처럼 preserve 가 쓰이면 데이터를 저장한 채로 배열

의 크기를 
             늘려준다.
   즉, 기존의 들어가 있는 데이터는 그대로 아직 존재한다. 
       따라서 대한민국이 출력된다.

 

    ④ 배열의 선언과 동시에 값 할당.

 예제 ④

 <%
 dim color
     color=Array("yellow","green","beige","silver")

 response.write color(0) '배열의 첫번째 값인 yellow 가 출력된다.
 %>


 
    ⑤ Option Explicit

 * 변수선언을 반드시 하도록 설정할 때 사용한다.


 예제 ⑤
 
 <%
   Option Explicit
   dim boy 
       boy = "소년"
       girl = "소녀"

   response.write boy & girl
 %>


 

 * 위에서 girl 은 변수에 값을 할당하기 전에 변수의 선언이 없으므로 에러가 발생한

다.
 * 주의 할 것은 Option Explicit 선언은 반드시 문서의 최 상단에 있어야 한다.
   문서의 중간에서 선언 될 수는 없다.

■ 구분자

   :

 * ASP에서 구분자로는  :(콜론) 이 쓰인다.
 * 구분자는 실행할 문장을 한줄단위로 구분짓는 역할을 한다.

 사용예)
 
 <%
   dim girl:
   dim boy : boy="소년" : response.write boy
 %>
 

 * 위에서 두번째 문장은 에러가 발생해야 하지만 구분자(:)가 있기 때문에 에러가 발

생하지 않는다.

■ 연결연산자

   &

 * &가 문자열에 쓰이면 문장과 문장을 연결해서 한 문장으로 만들어준다.
 * &가 변수에 쓰이면 변수의 값을 & 다음의 값과 이어준다.

 사용예)

 <%
    dim boy, girl, all
        boy = "김" & "영한"
        girl = "소녀"
        all = boy & girl
        all = all & "결과"

    response.write boy & "<br>"
    response.write all
 %>
 

 * 위에서 boy 의 값은 "김영한" 이며
   all 의 값은 "김영한소녀결과" 이다.


■ 주석

   '

 * ASP에서 주석처리에는 '(작은 따옴표) 가 쓰인다.
 * 행에서 ' 다음의 내용은 주석처리되어 해석이 되지 않는다.

 사용예)

 <%
   'dim boy
   'boy = "소년" 
   'response.write boy
 %>
 

 * 이렇게 하면 위의 문장들은 실행이 되지 않고 무시된다.

 

■ ASP 문자열 및 수학 함수

1. 문자열 및 수학 함수

 cint(문자열)  문자열을 정수값으로 출력(32768 이상의 큰 숫자에는 사용할 수 없다)

 사용예)

            <%=cint("100")+cint("100")%><br>
      <%="100" + "100"%>

     

     * 따옴표(") 가 붙었기 때문에 100 이 문자열이어서 100100 이어야 하지만
       첫번째 라인은 숫자형으로 변환을 했기 때문에 200 이 출력 된다.


 cdbl(문자열)  문자열을 소수점이하까지도 출력(큰 숫자에 사용한다)

 round(숫자,반올림할 위치)  지정한 소수점 자리에서 반올림한 값을 리턴

 asc(문자열)  문자열에서 첫번째 문자에 대한 ansi 코드 번호를 리턴

 chr(아스키코드번호)  지정된 번호와 일치하는 ansi 문자로 구성된 문자열을 리턴

 hex(숫자)  숫자의 16진수값을 나탸내는 문자열을 리턴

 fix(숫자)  숫자의 정수(전체)부분을 리턴 / 음수일때 숫자보다 크거나 같은 첫번째

음의 정수 리턴

 int(숫자)  숫자의 정수(전체)부분을 리턴 / 음수일때 숫자보다 작거나 같은 첫번째

음의 정수 리턴

 sgn(숫자)  숫자의 부호를 나타내는 정수를 리턴

 cdate(숫자)  날짜 형식의 인자값 리턴( 예:cdate(36890) , cdate("2001년 12월 10일

") )

 Clng(숫자)   Long 형식의 문자열 리턴

 Cstr(숫자)   String 형식의 문자열 리턴

 Csng(숫자)   Single 형식의 문자열 리턴

 formatcurrency(숫자) : 숫자를 화폐형식으로 전환
 formatdatetime(date,1) : date 함수의 표시형태를 바꿈
 formatdatetime(date,2)
 formatdatetime(date,3)
 formatpercent(숫자) : 숫자를 백분율로 표시

 strConv 지정한대로 문자를 변환.
  strConv(문자열,conversion [,LCID])
  
 >> conversion 에 가능한 값

 vbUpperCase 1 문자열을 대문자로 변환
 vbLowerCase 2 문자열을 소문자로 변환
 vbPropercase 3 문자열 단어의 첫글자를 대문자로 변환
 vbWide 4 1바이트문자를 2바이트 문자로 변환
 vbNarrow 5 2바이트문자를 1바이트문자로 변환
 vbUnicode 6 시스템의 기본 코드 페이지를 사용하여 문자열을 unicode

로 변환
 vbFromUnicode 128 unicode 문자열을 시스템의 기본 코드 페이지로 변환


3. 난수 함수(임의의 수를 리턴함)

 Randomize : 난수 발생기를 초기화 합니다.

 난수값 = Int((상한값 - 하한값) + 1) * Rnd + 하한값

 예로 1부터 100사이의 난수를 가져오려면,
 난수값 = Int(100 - 1 + 1) * Rnd + 1


4. 삼각 함수

 Atn() : 숫자의 아크 탄젠트 값을 리턴
 Cos() : 각도의 코사인값을 리턴
 Exp() : e(자연 로그의 밑)의 인자만큼의 제곱을 리턴
 Log() : 숫자의 자연로그를 리턴
 Sin() : 각도의 사인값을 리턴
 Tan() : 각도의 탄젠트값을 리턴

5. 문자열 관련 함수

 InStr("문자열","찾을 문자") 문자열의 위치 반환

     사용예)

     
     <%=instr("월드컵","대한민국 월드컵 코리아")%>

     * 실행결과 : 6
     * 만약 찾는 문자가 없다면 0 을 반환한다.
     * 문자열에서 시작은 1 부터 시작하며, 공백은 1 자리로 계산된다.

 InStrRev("문자열","찾을 문자") 문자열의 위치를 뒤에서 부터 검색해서 반환
 Lcase("문자열") 문자열을 소문자로...
 Ucase("문자열") 문자열을 대문자로...

 Len("문자열") :문자열의 길이 반환

 문자열 잘라내기

 Left("문자열",잘라낼 갯수) : 문자열을 왼쪽에서 지정한 갯수만큼 잘라냄
 Right("문자열",잘라낼 갯수) : 문자열을 오른쪽에서 지정한 갯수만큼 잘라냄

 문자열 뽑아내기
 Mid("문자열",시작위치,뽑아낼 갯수) : 문자열의 어느 부위를 뽑아냄

 문자열에서 공백문자 제거
 Yrim("문자열") : 문자열의 양쪽 공백을 제거
 Ltrim("문자열") : 문자열의 왼쪽 공백을 제거
 Rtrim("문자열") : 문자열의 오른쪽 공백을 제거

 Split("문자열","분리자") : 분리자를 기준으로 문자열을 나눔
 Splite()함수예제 : 
    str1 = Splite("사람,동물,인형",",")
    즉, "사람,동물,인형" 이라는 문자열을 "," 를 기준으로 잘라내면 자동 배열이 형

성되어 각각
    str1(0) = "사람"
    str1(1) = "동물" 
    str1(2) = "인형"  
    의 값을 가지게 된다.


 StrReverse("문자열") : 문자열을 뒤집음

 기타 확인함수

 IsArray() 변수가 배열인지의 여부를 나타내는 Boolean 값을 리턴
 IsDate() 날짜로 변환될 수 있는지의 여부를 나타내는 Boolean 값을 리턴
 IsEmpty() 변수가 초기화 될 수 있는지의 여부를 나타내는 Boolean 값을 리턴
 IsNull() 유효한 데이터를 포함하고 있는지의 여부를 리턴
 IsNumeric() 숫자로 평가될 수 있는지의 여부를 리턴
 IsObject() 유효한 ActiveX혹은 OLE 자동화 개체를 참조하는지의 여부를 리턴
 Vartype() 변수의 하위 형식을 나타내는 숫자를 리턴한다.

     사용예)

     <%
     Dim boy
         boy="소년"
     response.write IsNull(boy)
     %>

      * 실행결과: boy 변수는 NULL 이 아니므로 false 를 반환한다.


6. 날짜/시간 함수 예제

 ♠ now : 시스템의 시간과 날짜
 ♠ date : 시스템의 날짜
 ♠ time : 시스템의 시간

 현재의 년도 : year(now)
 현재의 월 month(now) , monthname(month(now))
 현재의 일 day(now)
 현재의 요일 : weekday(now) , weekdayname(weekday(now))
 현재의 시 : hour(now)
 현재의 분 : minute(now)
 현재의 초 : second(now)

  예)

  * 오늘의 날짜와 시간 : <%=now%>
  * 오늘의 날짜 : <%=date()%> 
  * 현재 시간 : <%=time%> 
  * 올해 : <%=year(now)%>
 ♠ DateAdd

 >> 지정된 날짜에 시간을 추가하거나 뺀 새로운 날짜를 반환한다.

 사용법 : DateAdd(interval, number, date)

 >> interval : 필수적인 인수로 interval을 추가한 날짜를 나타내는 문자식이다. 
 >> number : 필수적인 인수로 추가할 간격 수의 수식이다. 
             수식에서 양수는 미래의 날짜, 음수는 과거의 날짜이다. 
 >> date : 필수적인 인수로 interval을 추가한 날짜를 나타내는 Variant 또는 리터럴

이다.

 interval 에 가능한 값은 아래와 같다.

  yyyy 년 
  q 분기 
  m 월 
  y 일(일년 기준) 
  d 일 
  w 요일 
  ww 주(일년 기준) 
  h 시 
  n 분 
  s 초

  예)

  DateAdd("m",3,Date) >> 현재의 날짜에서 3개월을 더함
  DateAdd("m",-3,Date) >> 현재의 날짜에서 3개월을 뺌

 ♠ DateDiff

 >> 주어지는 두 날짜의 간격을 반환한다.

 사용법 : DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])

   >> interval : 필수적인 인수로 날짜1과 날짜2 사이의 차이를 계산하는 데 사용할

interval의 
       문자식이다. 
   >> date1, date2 : 필수적인 인수로 날짜식에서 계산에 사용할 두 날짜이다. 
   >> firstdayofweek : 선택적인 인수로 요일을 지정하는 상수로 지정하지 않으면 일

요일로 간주한다. 
   >> firstweekofyear : 선택적인 인수로 연도를 기준으로 한 첫째 주를 지정하는 상

수이다. 
     지정하지 않으면 1월 1일을 포함하는 주를 첫째 주로 간주한다.

  interval 에 가능한 값은 아래와 같다.

   yyyy 년 
   q 분기 
   m 월 
   y 일(일년 기준) 
   d 일 
   w 요일 
   ww 주(일년 기준) 
   h 시 
   n 분 
   s 초


  >> firstdayofweek 에 가능한 값은 아래와 같다.
   =======================================
   상수     값   설명 
  =======================================
  vbUseSystem  0   NLS(National Language Support) API 설정 사용 
  vbSunday     1   일요일(기본값) 
  vbMonday     2   월요일 
  vbTuesday    3   화요일 
  vbWednesday  4   수요일 
  vbThursday   5   목요일 
  vbFriday     6   금요일 
  vbSaturday   7   토요일


  >> firstweekofyear 에 가능한 값은 아래와 같다.

   =======================================
   상수        값  설명 
  =======================================

  vbUseSystem     0  NLS(National Language Support) API 설정 사용 
  vbFirstJan1     1  1월 1일을 포함하는 주에서 시작(기본값) 
  vbFirstFourDays 2  새해의 처음 4일을 포함하는 주에서 시작 
  vbFirstFullWeek 3  새해의 처음 한 주일(7일)을 포함하는 주에서 시작
 
 예)

 DateDiff("h", "2001년 12월 30일", Date) '현재시간과 2001년 12월 30일의 시간차이

비교
 DateDiff("n", "2001년 12월 30일 09:30:00", now) 
 DateDiff("s", "2001년 12월 30일 09:30:00", now)


 ♠ DatePart

 >> 주어진 날짜의 지정된 부분을 반환한다.

 사용법 : DatePart(interval, date[, firstdayofweek[, firstweekofyear]])

 >> interval : 필수적인 인수로 반환할 시간 간격의 문자식이다.
 >> date : 필수적인 인수로 계산할 날짜식이다. 
 >> firstdayof week : 선택적인 인수로 요일을 지정하는 상수로서 지정하지 않으면

일요일로 간주한다. 
 >> firstweekofyear : 선택적인 인수로 연도를 기준으로 한 첫째 주를 지정하는 상수

이다. 
   지정하지 않으면 1월 1일을 포함하는 주를 첫째 주로 간주한다.

  interval 에 가능한 값은 아래와 같다.


   yyyy 년 
   q분기 
   m 월 
   y 일(일년 기준) 
   d 일 
   w 요일 
   ww 주(일년 기준) 
   h 시 
   n 분 
   s 초

  firstdayofweek 에 가능한 값은 아래와 같다.

   =======================================
   상수          값  설명 
  =======================================

  vbUseSystem  0   NLS(National Language Support) API 설정 사용 
  vbSunday     1   일요일(기본값) 
  vbMonday     2   월요일 
  vbTuesday    3   화요일 
  vbWednesday  4   수요일 
  vbThursday   5   목요일 
  vbFriday     6   금요일 
  vbSaturday  7   토요일


  firstweekofyear 에 가능한 값은 아래와 같다.
   =======================================
   상수        값  설명 
  =======================================

  vbUseSystem     0  NLS(National Language Support) API 설정 사용 
  vbFirstJan1     1  1월 1일을 포함하는 주에서 시작(기본값) 
  vbFirstFourDays 2  새해의 처음 4일을 포함하는 주에서 시작 
  vbFirstFullWeek 3  새해의 처음 한 주일(7일)을 포함하는 주에서 시작

 예)

 <%=DatePart("q", now)%> 
 * 실행결과 : 1,2,3,4 의 숫자중 현재 분기에 해당하는 숫자 리턴

 

 ♠ DateSerial

 >>지정된 년, 월, 일의 Date 하위 형식인 Variant를 반환한다. 
   즉 임의의 숫자를 입력받아 날짜 형식으로 반환하는 함수이다.

 사용법 : DateSerial(year, month, day)

  year : 100에서 9999까지의 수 또는 수식 
  month : 모든 수식 
  day : 모든 수식

 예)

 <%=DateSerial(2001, 12, 25) %>
 * 실행결과 : 2001-12-25
 ♠ DateValue

 >>Date 하위 형식의 Variant를 반환한다.

 사용법 : DateValue(date)

 대개 date 인수는 100년 1월 1일에서 9999년 12월 31일까지를 나타내는 문자식으로

이 범위에 있는 
 날짜, 시간 또는 날짜/시간을 나타내는 식이다. 
 date 인수에 시간 정보가 있는 경우 DateValue 함수에서는 그 정보를 반환하지 않는

다. 
 그러나 date 인수에 "12:11"처럼 잘못된 시간 정보가 있으면 오류가 발생하게 된다.

 date 인수가 유효한 날짜 구분 기호로 분리된 숫자만 있는 문자열인 경우, DateValue

함수에서는 
 컴퓨터에 설정한 간단한 표시 날짜 형식에 따라 년, 월, 일에 대한 순서로 인식하게

된다. 
 또한 정식이나 약식의 월 이름을 포함하고 있는 명확한 날짜도 인식한다. 
 예를 들어 DateValue 함수는 1/23/2001과 1/23/01 뿐만 아니라 January 23,2001과

Jan 23,2001을 
 모두 인식한다.

 date 인수에서 연도 부분을 생략할 경우 DateValue 함수는 컴퓨터 시스템에 설정되어

있는 현재 
 연도를 사용한다.

 예)

 <%=DateValue("2000년 12월 25일") %>
 * 실행결과  : 2000-12-25


-----------------------------
엑셀로 저장

<%
'디비에서 데이타를 불러와 엑셀로 저장하기

'ODBC 연결
Set db = Server.CreateObject("Adodb.Connection")
db.open "dsn=nagayodb;uid=sa;pwd=kkk119;"

Response.Buffer = true

'변수 선언
Dim xlApp 
Dim xlWorkbook 
Dim xlWorksheet
Dim sSQL, rs, strHTML, str

'데이타 불러오기
sSQL = "Select * From 테이블명"
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open sSQL, db
%>
<html>
<head>
<title>디비에서 데이타를 불러와 엑셀로 저장하기</title>
<body bgcolor=white>
<table border='1' cellpadding='3' cellspacing='1'>
<%
do until rs.EOF
%>
<tr height='30'>
<td><%=rs(0)%></td>
<td><%=rs(1)%></td>
<td><%=rs(2)%></td>
</tr>
<%
rs.MoveNext
loop
%>
</table>

<br>

<a href="work\test.xls" target="_new">엑셀로 보기 </a>

<%
'엑셀로 변환
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True

Set xlWorkbook = xlApp.Workbooks.Add
Set xlWorksheet = xlWorkbook.Worksheets.Add

rs.movefirst
i = 1
do until rs.EOF

a = "A"&i
b = "B"&i
xlWorksheet.Range(a).Value = rs(0)&","&rs(1)
xlWorksheet.Range(b).Value = rs(2)

rs.MoveNext
i = i + 1
loop

xlApp.Workbooks.Item(1).SaveAs Server.MapPath("/work") & "\" & "test.xls"

'Session.SessionID & ".xls"

xlWorkbook.Close false
xlApp.WorkBooks.Close
xlApp.Quit

Set xlWorksheet = Nothing
Set xlWorkbook = Nothing
Set xlApp = Nothing

rs.Close
Set rs = Nothing
%>

'asp' 카테고리의 다른 글

ASP에서 웹서비스(WebService) 호출  (0) 2010.03.23
ABC 컴포넌트 다중업로드  (0) 2010.03.19
ASP 날짜 함수  (0) 2010.03.19
Scripting.Dictionary 개체  (0) 2010.03.15
ASP 윈2003의 CDONTS와 CDOSYS - 메일보내  (0) 2010.03.10

+ Recent posts