두 번째로 중요한 클래스는 유형 변환을 위한 클래스입니다. 클래스 이름은 페이지 코드 시작 부분에 인스턴스화됩니다. 개체 이름은 .net 유형 변환의 개체 이름을 차용한 것입니다. 유형 변환 기능을 직접 사용하면 변수가 비어 있거나 형식이 잘못되었기 때문에 프로그램에서 오류가 보고되며, 예를 들어 문자열 변수를 문자열 변수로 변환하려는 경우에는 이 오류가 허용됩니다. 숫자, 변수가 비어 있으면 일반적으로 자동으로 0을 반환해야 합니다.
또 다른 중요한 기능은 시간 형식, 통화 형식 등 전체 웹사이트의 균일한 출력 형식을 유지할 수 있는 변수 형식 지정 작업을 캡슐화하는 것입니다. 날짜 및 통화 형식을 지정할 때 null 값으로 인해 오류가 발생하기 매우 쉽습니다. 일반적으로 null 값을 미리 판단한 다음 변수 형식을 지정하는 논리를 작성해야 합니다. 이 클래스를 사용하여 형식 변환 및 형식화된 출력을 담당하면 이러한 사소한 세부 사항에 대해 걱정할 필요가 없습니다. 프로그래밍 기분을 개선해 보세요.
또한 Convert.ToPer()는 숫자를 백분율로 변환하는 데 사용되고, Convert.FirstUppercase()는 첫 글자를 대문자로 바꾸는 데 사용되는 등 추가된 다른 서식 지정 함수도 있습니다. 필요에 따라 다음과 같은 작업을 수행할 수 있습니다. 이 수업을 자유롭게 연장하고 모든 사람과 공유하는 것을 잊지 마세요.
일부 기본 함수는 가볍게 작성하면 무난하게 사용할 수 있지만 특별한 상황이 발생하면 다시 작성해야 합니다. 예를 들어 제가 작성한 Convert.ToInt() 메서드는 변수를 Integer로 변환하는지 확인합니다. 비어 있으면 Cint()를 사용하세요. 하지만 변수가 범위를 벗어나면 Integer 범위 안에 있는지 확인해야 하므로, 변수 값이 특정 범위 내의 숫자인지 확인하는 Private 메소드 IsOverflowInteger()를 작성했습니다. 기본적으로 모든 상황을 처리할 수 있습니다.
그래서 Convert 클래스에는 아직 개선되어야 할 메소드들이 많이 남아 있다고 생각하는데, 더 좋고 완전한 기능이 있다면 ASP에서 가장 표준적인 변수 처리 클래스가 될 수 있도록 공유해주세요. ASP의 제한된 기능에 의존하십시오.
더 중요한 방법 중 일부는 아래에 나열되어 있습니다. 자세한 내용은 코드를 참조하세요.
유형 판단:
Convert.IsInteger(ByVal Value)는 정수인지 여부를 결정하며 0~9 및 - 기호만 허용됩니다.
Convert.IsInt(ByVal Value)는 int형인지 판단하는 것과 비슷하므로 설명할 필요가 없습니다.
Convert.IsLng(ByVal 값)
Convert.IsDecimal(ByVal 값)
Convert.IsSng(ByVal 값)
Convert.IsDbl(ByVal 값)
Convert.IsCur(ByVal 값)
Convert.IsBln(ByVal 값)
Convert.IsDat(ByVal 값)
Convert.IsArr(ByVal 값)
유형 변환:
Convert.ToStr(ByVal 값)
Convert.ToInt(ByVal 값)
Convert.ToLng(ByVal 값)
Convert.ToSng(ByVal 값)
Convert.ToDbl(ByVal 값)
Convert.ToBln(ByVal 값)
Convert.ToCur(ByVal 값)
Convert.ToDat(ByVal 값)
체재:
Convert.FormatDat(ByVal Value, ByVal vStyle) 날짜 형식
Convert.FormatCur(ByVal Value,ByVal vDecimal) 통화 형식 지정
Convert.FormatNum(ByVal Value,ByVal vDecimal) 숫자 형식 지정
기타 형식:
Convert.ToPer(Byval value,Byval value0) 백분율(% 포함)
Convert.FirstUppercase(ByVal value) 첫 글자를 대문자로 합니다.
Convert.SafeSql(ByVal 값)은 SQL에서 'for'를 대체합니다.
코드는 다음과 같습니다. (코드 삽입 방법도 모르고, CSDN이 어떻게 동작하는지 모르겠습니다. 클릭해서 코드 삽입하면 코드 접는 스타일이 아닌 <textarea> 입니다. 문의주세요. 조언을 구하는 친구.)
다음과 같이 코드 코드를 복사합니다.
클래스 Con_Convert
'********전역 메시지
개인 i,j,값0,값1,값2
비공개 하위 클래스_초기화
서브 끝
비공개 하위 클래스_종료
서브 끝
' ================================================ =============================
' 유형을 확인하고 true/false를 반환합니다.
' ================================================ =============================
공용 함수 IsStr(ByVal 값)
IsStr=참
기능 종료
'***** 정수인 경우 문자열을 확인하세요.
공용 함수 IsInteger(ByVal 값)
if Trim(Value)= 또는 IsNull(Value) 또는 IsEmpty(Value)
IsInteger=거짓
또 다른
IsInteger = 참
value0=트림(값)
i = 1의 경우 len(value0)
Asc(Mid(value0, i, 1))>= Asc(0) 및 Asc(Mid(value0, i, 1)) <= Asc(9)이면
또 다른
Asc(Mid(value0, i, 1))= Asc(-) 및 i=1이면
또 다른
IsInteger = 거짓
종료 대상
종료하면
종료 조건
다음
종료하면
기능 종료
'******** 값이 정수 범위에 있는지 확인하세요.
'이 수업에서만 사용하세요.
' 값:
' vBound : 최대
개인 함수 IsOverflowInteger(ByVal Value,ByVal vBound)
if IsInteger(Value) 및 IsInteger(vBound)
IsOverflowInteger=false
value0=트림(값)
값1=트림(vBound)
IsOverflowInteger=false인 경우
'왼쪽에서 0을 삭제
while( left(value0,1)=0 또는 left(value0,1)=- )을 수행합니다.
값0=오른쪽(값0,len(값0)-1)
고리
while( left(value1,1)=0 또는 left(value1,1)=- )을 수행합니다.
값1=오른쪽(값1,len(값1)-1)
고리
len(값0)=len(값1)이면
i=1에서 len(value0)까지
if Asc(mid(value0,i,1)) > Asc(mid(value1,i,1)) 또는 Asc(mid(value0,i,1)) > Asc(9) 또는 Asc(mid(value0,i, 1)) < Asc(0) 다음
IsOverflowInteger=true
종료
종료하면
다음
또 다른
len(값0)>len(값1)이면
IsOverflowInteger=true
종료하면
종료하면
종료하면
또 다른
IsOverflowInteger=true
종료하면
기능 종료
공용 함수 IsInt(ByVal 값)
IsInt=참
if left(trim(value),1)=- 그러면
if IsOverflowInteger(trim(value),-32768) then
IsInt=거짓
종료하면
또 다른
if IsOverflowInteger(trim(value),32767) then
IsInt=거짓
종료하면
종료하면
종료 기능
공용 함수 IsLng(ByVal 값)
IsLng=참
if left(trim(value),1)=- 그러면
if IsOverflowInteger(trim(value),-2147483648) then
IsLng=거짓
종료하면
또 다른
if IsOverflowInteger(trim(value),2147483647) then
IsLng=거짓
종료하면
종료하면
기능 종료
'********************************************
'소수
'********************************************
'***** 문자열이 10진수인지 확인하세요.
개인 함수 IsDecimal(ByVal 값)
희미한 intDecimalCount
intDecimalCount=0
if Trim(Value)= 또는 IsNull(Value) 또는 IsEmpty(Value)
IsDecimal=거짓
또 다른
IsDecimal = 참
value0=트림(값)
i = 1의 경우 len(value0)
Asc(Mid(value0, i, 1))>= Asc(0) 및 Asc(Mid(value0, i, 1)) <= Asc(9)이면
또 다른
Asc(Mid(value0, i, 1)) 케이스 선택
오름차순(-)
i=1이면
또 다른
IsDecimal = 거짓
종료 대상
종료하면
오름차순(.)
intDecimalCount<2이면
intDecimalCount=intDecimalCount + 1
또 다른
IsDecimal = 거짓
종료 대상
종료하면
다른 경우
IsDecimal = 거짓
종료 대상
선택 종료
종료 조건
다음
종료하면
기능 종료
'******** 값이 10진수 범위에 있는지 확인하세요.
'이 수업에서만 사용하세요.
' 값:
'v바운드:
개인 함수 IsOverflowDecimal(ByVal Value,ByVal vBound)
if Trim(Value)= 또는 IsNull(Value) 또는 IsEmpty(Value) 또는 Trim(vBound)= 또는 IsNull(vBound) 또는 IsEmpty(vBound)
IsOverflowDecimal=true
또 다른
종료하면
기능 종료
공개 함수 IsSng(ByVal 값)
IsSng=IsDecimal(값)
' -340282300000000000000000000000000000000 ~ -0.0000000000000000000000000000000000000000000001401298
' 0.00000000000000000000000000000000000000000001401298 ~ 3402823000000000000000000000000000000
' -3.402823 E38 ~ -1.401298 E-45
' 1.401298 E-45 ~ 3.402823 E38
기능 종료
공용 함수 IsDbl(ByVal 값)
IsDbl=IsDecimal(값)
' -1.79769313486232 E308 ~ -4.94065645841247 E-324
' 4.94065645841247 E-324 ~ 1.7976931348623 E308
기능 종료
공개 함수 IsCur(ByVal 값)
IsCur=IsDecimal(값)
'-922337203685477.5808 ~ 922337203685477.5807
기능 종료
공용 함수 IsBln(ByVal 값)
Value=true 또는 Value=false이거나 Trim(Value)=1 또는 Trim(Value)=0인 경우
IsBln=참
또 다른
IsBln=거짓
종료하면
기능 종료
공개 함수 IsDat(ByVal 값)
if Trim(Value)= 또는 IsNull(Value) 또는 IsEmpty(Value)
IsDat=거짓
또 다른
IsDat=IsDate(값)
종료하면
기능 종료
공용 함수 IsArr(ByVal 값)
if Trim(Value)= 또는 IsNull(Value) 또는 IsEmpty(Value)
IsArr=거짓
또 다른
IsArr=IsArray(값)
종료하면
기능 종료
' ================================================ =============================
'형식, 반환값/초기값 변환
' ================================================ =============================
공용 함수 ToStr(ByVal 값)
ToStr=트림(값)
기능 종료
공개 함수 ToInt(ByVal 값)
IsInt(값)이면
ToInt=Cint(값)
또 다른
ToInt=0
종료하면
기능 종료
공개 함수 ToLng(ByVal 값)
IsLng(값)이면
ToLng=clng(값)
또 다른
ToLng=0
종료하면
기능 종료
공개 함수 ToSng(ByVal 값)
IsSng(값)이면
ToSng=cSng(값)
또 다른
ToSng=0
종료하면
기능 종료
공용 함수 ToDbl(ByVal 값)
IsDbl(값)이면
ToDbl=cDbl(값)
또 다른
ToDbl=0
종료하면
기능 종료
공용 함수 ToBln(ByVal 값)
IsBln(값)이면
ToBln=cbool(값)
또 다른
ToBln=거짓
종료하면
기능 종료
'******** vDecimal : 소수점 이하 자릿수
공개 함수 ToCur(ByVal 값)
IsCur(값)이면
ToCur=ccur(값)
또 다른
현재=0
종료하면
기능 종료
'******** vType: 날짜 형식
공개 함수 ToDat(ByVal 값)
IsDat(값)이면
ToDat=cdate(값)
또 다른
ToDat=
종료하면
기능 종료
' ================================================ =============================
'체재
' ================================================ =============================
'************************************************ * ***
'FormatDat
'날짜
'vStyle 0:2008-1-30 1:2008/1/30 2:1/30/2008 3:30/1/2008 4:30-JAN-2008
' 10:2008-1 11:2008/1 12:1/2008
'22:2008년 1월
'30:2008-1-30 11:20:20
'40:2008-01-09
공용 함수 FormatDat(ByVal Value, ByVal vStyle)
희미한 날짜This,intStyle
dateThis=ToDat(값)
intStyle=ToInt(vStyle)
dateThis= 또는 isnull(dateThis)인 경우
형식Dat =
또 다른
희미한 arrMonthArray(12)
arrMonthArray(1)=JAN
arrMonthArray(2)=2월
arrMonthArray(3)=MAR
arrMonthArray(4)=4월
arrMonthArray(5)=5월
arrMonthArray(6)=JUN
arrMonthArray(7)=7월
arrMonthArray(8)=AUG
arrMonthArray(9)=SEP
arrMonthArray(10)=OCT
arrMonthArray(11)=NOV
arrMonthArray(12)=DEC
선택 케이스 intStyle
사례 1
FormatDat=cstr(연도(dateThis)) &/& cstr(월(dateThis)) &/& cstr(day(dateThis))
사례 2
FormatDat= cstr(월(dateThis)) &/& cstr(day(dateThis)) &/& cstr(year(dateThis))
사례 3
FormatDat= cstr(일(dateThis)) &/& cstr(월(dateThis)) &/& cstr(year(dateThis))
사례 4
FormatDat= cstr(일(dateThis)) &-& arrMonthArray(월(dateThis)) &-& cstr(year(dateThis))
사례 10
FormatDat=cstr(연도(dateThis)) &-& cstr(월(dateThis))
사례 11
FormatDat=cstr(연도(dateThis)) &/& cstr(월(dateThis))
사례 12
FormatDat= cstr(월(dateThis)) &/& cstr(연도(dateThis))
사례 22
FormatDat= arrMonthArray(월(dateThis)) &-& cstr(연도(dateThis))
사례 30
FormatDat= cstr(연도(dateThis)) &-& cstr(월(dateThis)) &-& cstr(일(dateThis)) & & hour(dateThis) &:& 분(dateThis) &:& 초(dateThis)
사례 40
FormatDat=cstr(연도(dateThis)) &-& ZeroPad(cstr(월(dateThis)),2) &-& ZeroPad(cstr(day(dateThis)),2)
다른 경우
FormatDat=cstr(연도(dateThis)) &-& cstr(월(dateThis)) &-& cstr(day(dateThis))
선택 종료
종료하면
기능 종료
'********************
'포맷현재
'********************
공용 함수 FormatCur(ByVal Value,ByVal vDecimal)
FormatCur=형식통화(ToCur(값),ToInt(vDecimal))
기능 종료
공용 함수 형식Num(ByVal Value,ByVal vDecimal)
FormatNum=FormatNumber(ToDbl(값),ToInt(vDecimal))
기능 종료
' ================================================ =============================
'다른 형식
' ================================================ =============================
공용 함수 ToPer(Byval 값, Byval 값0)
만약 Convert.ToDbl(value0)<>0이면
ToPer = me.FormatNum( Convert.ToDbl(값) / Convert.ToDbl(값0) * 100,2 ) & %
또 다른
ToPer = 0.00%
종료하면
기능 종료
'****** 값 -> 값 첫 번째 코드를 대문자로 변경
공용 함수 FirstUppercase(ByVal 값)
value0 = 트림(값)
len(value0)=0이면
첫 번째대문자=
또 다른
FirstUppercase = UCase(왼쪽(값0,1)) & 오른쪽(값0,len(값0)-1)
종료하면
기능 종료
공용 함수 SafeSql(ByVal 값)
SafeSql = 대체(값,','')
기능 종료
수업 종료