2009-09-04 2 views
7

나는 고전적인 ASP에 익숙하지 않다. 내 경험은 모두 C# .net과 ColdFusion and php이다.classic asp cint

어쨌든, 내가 일하고 있어요이 사이트는 모든 장소

은 "0"합니다 (CINT의 VAR에 추가 왜 내가 이해하지 못하는 것은
If (CInt("0" & myVar) > 0) Then 
    myNewCar = CInt("0" & myVar) 
End If 

) 입력을 통해이 코드를 가지고 ? 방금 뭔가 빠졌나요? 어떤 종류의 안전 장치입니까? 그것은 효율적입니까?

참고로 모든 고전 ASP 북을 권장하나요?

+0

약간의 재미가 얻을 수 없을거야. 추가 할 수 없습니다 ( –

+0

) Sub cint (Val) cint = clng (Val) end sub. 이전 게시물에 대해 미안합니다. –

답변

11

null 값을 처리하기위한 오래된 해킹입니다. null에서 CInt를 호출하면 오류가 발생합니다. 그러나 문자열을 null과 연결하면 문자열이 결과적으로 "0"이됩니다. & null은 "0"을 반환합니다. 이렇게하면 값이 null 일 때 CInt가 오류를 일으키지 않습니다.

2

myVar은 객체, 빈 문자열 또는 숫자가 아닐 수 있습니다. "0"이라고 미리 보류하면 일부 유효한 정수가 반환됩니다.

+1

CInt (Empty)는 0을 반환합니다. 기본값이없는 개체와 "0" 속성을 사용하면 오류가 발생합니다. – AnthonyWJones

0

내 고전적인 ASP는 약간 녹슬었지만 안전하다고 생각합니다. 예를 들어 myVar가 정의되지 않았고 CInt를 수행하려고 시도하면 오류가 발생합니다.

+1

옵션을 명시 적으로 사용하면 Option Explit없이 컴파일되지 않습니다. 정의되지 않은 변수가 동적으로 정의되고 값이 비어 있습니다. 빈 값은 0으로 CInt됩니다. – AnthonyWJones

0

null 값을 입력하면 오류가 발생합니다. Cstr에 해당하지 않습니다.

기본적으로 myVar> 0인지 확인하는 것이 null 체크 인 것으로 가정합니다.

myVar=cstr(myVar) 
If (not length(myVar) = 0) Then 
    myNewCar = cint(myVar) 
End If 

그래서 myNewCar는 ""또는 값 것 중 하나와 오류 여기