2014. 2. 26. 14:54 IT/ASP

ASP 수치 변환 함수

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

데이터 범위(data ranges)

각 Variant 하위 형식은 허용 값을 제한하는 특정 범위를 갖습니다.

하위 형식범위
Byte0~255
BooleanTrue 또는 False
Integer-32,768~32,767
Long-2,147,483,648~2,147,483,647
Single-3.402823E38~-1.401298E-45(음수) 및 1.401298E-45~3.402823E38(양수)
Double-1.79769313486232E308~-4.94065645841247E-324(음수) 및 4.94065645841247E-324~1.79769313486232E308(양수)
Currency-922,337,203,685,477.5808~922,337,203,685,477.580
Date100년 1월 1일부터~9999년 12월 31일(양끝 포함)
Object모든 Object 참조
String가변 길이 문자열의 경우 0개에서 약 20억개까지의 문자

cint 는 integer

clng 는 long

cdbl 는 double

'IT > ASP' 카테고리의 다른 글

DEXT FileUpload API  (0) 2014.03.20
asp DB 연결 string 관리.  (0) 2014.03.12
정규식 활용. ime-mode 숫자만 입력 가능.  (0) 2014.02.13
ASP 서버(Server) 정보. Request.ServerVariables.  (0) 2014.01.02
Asp 객체, 전역변수, global.asa  (0) 2013.12.30
Posted by 당양부부34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

ime-mode는 크롬에서 동작하지 않는다.

그러므로 정규식을 활용한다.


영어입력 : onkeyup="this.value=this.value.replace(/[^a-zA-z]/g,'')"

숫자입력 : onkeyup="this.value=this.value.replace(/[^0-9]/g,'')"

한글입력 : onkeyup="this.value=this.value.replace(/[^ㄱ-ㅎ가-힇]/g,'')" <- 인코딩 에러남....



'IT > ASP' 카테고리의 다른 글

asp DB 연결 string 관리.  (0) 2014.03.12
ASP 수치 변환 함수  (0) 2014.02.26
ASP 서버(Server) 정보. Request.ServerVariables.  (0) 2014.01.02
Asp 객체, 전역변수, global.asa  (0) 2013.12.30
ASP Round, Cint, Int 함수  (0) 2013.11.20
Posted by 당양부부34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

    <TABLE>

    <% For Each key in Request.ServerVariables %>

        <TR>

            <TD><%=key %></TD>

            <TD>

            <% 

                if Request.ServerVariables(key) = "" Then

                    Response.Write " " 

                else 

                    Response.Write Request.ServerVariables(key)

                end if

            %>

            </TD>

        </TR>

    <% Next %>

    </TABLE>

Posted by 당양부부34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

1. Asp 객체
Request
Response
Server
Application   클라이언트에 공통으로 적용(=DB)
Session       클라이언트에 개별적으로 적용
 
 
2. 전역변수 (파일공유 전역변수) : 모든페이지에 적용됨
 
전역변수를 적용 할 수 있는 객체는 Application / Session 객체가 있다!
Application 클라이언트에 공통으로 적용(=DB)
Application("변수명")
 
Session 클라이언트에 개별적으로 적용
Session("변수명")   // 기본20분 유지
 
session.sessionid
클라이언트 브라우저 접속시 할당되는 id값으로 브라우저가 닫힐때 소멸된다.! (장바구니 기능등...에 용이)
 
Application & Session - 전역변수 설정 유지
세션초기값 설정페이지 - global.asa 로 작성
 
이벤트로 제어
초기값 부여할때 쓰이는 global.asa 는 처음접속시 있으면 거쳐가고 없으면 그냥 무시하고 접속하게 된다.
 
 
3. global.asa
3-1. 자바스크립트
function 함수명(){
  return 값;
}
 
3-2. VB스크립트
function 함수명()    // 리턴할수 있음
end function
 
Sub 함수명()    // 리턴할수 없음
End Sub
 
 
4. global.asa 예제
<script language=VBscript runat=Server>  'runat=Server"는 서버에서 돌아가라는 뜻!
Sub Application_OnStart  '최초 클라이언트의 접속
  '어플리케이션 변수 설정시작
  '필요없으시면 빼도 됩니다.
  Application.Lock
  Application.contents("current_user") = 0
  Application.Unlock
End Sub
 
 
Sub Session_OnStart  '개인별 클라이언트의 접속
  Session.Timeout=30 '유지시간설정 (기본은 20분)
  'Session("uid")="guest" 
  'static_table = "ccssof_static"
 
  '연결개체 생성
  Set db = Server.CreateObject("ADODB.Connection")
  db.provider = "SQLOLEDB.1" 'SQL서버를 쓴다면 보통 이렇게 쓴다.
  db.Open("Persist Security Info=False;User ID=디비ID;password=디비PW;Data Source=디비IP")
  db.defaultDatabase = "디비name"
 
  '회원통계테이블에서 오늘날짜에 현재시간에 저장되어있는 레코드가 있는지 알아보는 쿼리
  SQL = "SELECT * FROM "&static_table
  SQL = SQL&" WHERE s_year= year(getdate())"
  SQL = SQL&"and s_month=month(getdate()) and s_day = day(getdate()) and s_time = datepart(hh,getdate())"
 
  Set rs= Server.CreateObject("ADODB.Recordset")
  '###레코드 셋 열기
  rs.Open SQL,db
  If rs.eof or rs.bof Then '오늘날짜와 현재시간에 해당하는 레코드가 없다면 레코드 추가
    SQL = "INSERT INTO "&static_table&" DEFAULT VALUES "
  ELSE '아니면 해당레코드에 카운드 1증가
    s_idx = rs("s_idx")
    SQL = "UPDATE "&static_table
    SQL = SQL & " SET s_count=s_count + 1 WHERE s_idx="&s_idx
  End If
  rs.close
  Set rs = nothing
 
  '#### 연결객체를 이용한 쿼리실행(빠른실행을 위해 레코드셋객체를 만들지 않음)
  db.Execute SQL
  db.close
  Set db = nothing
 
  '현재 접속자수 계산 루틴
  '필요없다면 다음 루틴 제거
  If isnull(Application.contents("current_user")) Then
    Application.Lock
    Application.contents("current_user") = 1
    Application.UnLock    
  Else
    Application.Lock    
    Application.contents("current_user") = Application.contents("current_user") + 1
    Application.Lock        
  End If
End Sub
 
 
Sub Session_OnEnd   '개인별 클라이언트의 접속종료
  '현재 접속자수 계산 루틴
  '필요없다면 다음 루틴 제거
  
  If isnull(Application.contents("current_user")) Then
    Application.Lock
    Application.contents("current_user") = 0
    Application.Unlock
  Else
    Application.Lock
    Application.contents("current_user") = Application.contents("current_user") - 1
    Application.UnLock
  End If
End Sub
 
Sub Application_OnEnd  '최종 클라이언트의 접속
End Sub
</script>

Posted by 당양부부34

2013. 11. 20. 11:02 IT/ASP

ASP Round, Cint, Int 함수

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

ASP 에서 Round 함수는 반올림 함수가 아니다.

 

페이징을 관련 프로그래밍을 하면서 한페이지씩 많을 때가 있어서

 

확인하다가 우연히 발견했다.

 

이해를 돕기위해 간단히 표로 보여준다

 

 

숫자 Round Cint Int
1.5 2 2 1
2.5 2 2 2
3.5 4 4 3
4.5 4 4 4
5.5 6 6 5
6.5 6 6 6
7.5 8 8 7
8.5 8 8 8
9.5 10 10 9
10.5 10 10 10

 

뭔가 규칙같은게 보이나?

 

그래 Round 이놈은 무조건 짝수로 만들고 있다. 1.6 은 2가 되고 2.6도 2가 된다.

 

당연한 얘기지만 0.5 보다 작을 때는 소숫점을 잘라버린다.

 

내가 페이징할 때 자주 쓰는 Cint 역시 Round와 동일하게 처리됐다.

 

그래서 소숫점을 잘라주는 Int를 사용하면 문제없이 내림처리가 가능하다.

 

그럼 ASP에서 반올림은 어떻게 할까? 여러가지 방법이 있겠지만,

 

Int(자연수+0.5)

 

이러면 해결된다. 간단하나?

 

그런데 왜 저렇게 처리될까 해서 포털에서 검색을 해봤더니 결과가 뙇!!

 

알다시피 Round함수는 통계함수다.

 

0.5이상일 때 무조건 반올림 처리하는 것보다, 홀수면 반올림 짝수면 내림처리를 하는게

 

통계학적으로 봤을 때 오차가 줄어든다고 한다.

Posted by 당양부부34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

ASP Get Parameter 작업 중 한글 데이터가 문제가 되는 경우가 있다.

그럴 때, 인코딩을 이용하면 된다.

URLEncode는 ASP에서 제공하는 것 쓰고

URLdecode는 사용자 함수를 쓰자..

왜?

한글은 2Byte문자니까.. 

그리고 Server.URLEncode로 Encoding시 % 접두사가 붙은 형태의 1Byte 문자로 인식하니까..

  

<%
Dim encodeTest : encodeTest = Server.URLencode("한글")
Dim decodeTest : decodeTest = URLDecode(encodeTest)

 

Response.Write encodeTest + "=" + decodeTest

 

'### Decode 함수 시작 ###

 

Function URLDecode(Expression)

 Dim strSource, strTemp, strResult, strchr
 Dim lngPos, AddNum, IFKor
 strSource = Replace(Expression, "+", " ")

 For lngPos = 1 To Len(strSource)
  AddNum = 2
  strTemp = Mid(strSource, lngPos, 1)
  If strTemp = "%" Then
   If lngPos + AddNum < Len(strSource) + 1 Then
    strchr = CInt("&H" & Mid(strSource, lngPos + 1, AddNum))
    If strchr > 130 Then 
     AddNum = 5
     IFKor  = Mid(strSource, lngPos + 1, AddNum)
     IFKor  = Replace(IFKor, "%", "")
     strchr = CInt("&H" & IFKor )
    End If
    strResult = strResult & Chr(strchr)
    lngPos = lngPos + AddNum
   End If
  Else
   strResult = strResult & strTemp
  End If
 Next

 URLDecode = strResult

End Function  

 

'### Decode 함수 끝 ###
%>

[출처] [ASP] URLencode, URLdecode|작성자 셰프

Posted by 당양부부34
이전버튼 1 2 이전버튼

블로그 이미지
주요 토렌트를 블로깅하고 있습니다. 토렌트 순위 등은 다른 사이트를 찾아보세요. 주요 웹툰 순위도 게재했어요 경제를 좋아하는 일산의 행복한 프로그래머입니다.
당양부부34
Yesterday
Today
Total

달력

 « |  » 2024.3
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함