类类型转换中的主要问题,如果直接转换函数类型,因为变量是空的或不正确的格式,并导致程序错误,这种错误在大多数情况下是允许的。例如,要将字符串变量转换为数字,如果变量为空,则通常需要自动返回0。
另一个重要的特性是包变量格式化输出格式,统一可以保存整个站点,例如,时间格式,货币格式等。当由于null错误而容易遇到的日期和货币格式时,通常必须编写null值逻辑的预判断,然后使用格式化变量。这个类负责类型转换和格式化输出,你不用担心这些小细节,可以让编程的心情大大提高。
还有一些其他格式化功能,添加到它。例如,convert.toper()用于数字转换成百分比。Convert.FirstUppercase()是用于首字母大写。您可以根据您的需要随时扩展这个类,并且不要忘记与大家分享。
一些基本功能,如果不写,可以凑合,但特殊情况下,会改写。当我写(转换。Toint)方法,将变量转换为整数的基本操作,是决定它是否是空的,不是由Cint直接空(可以)。但遇到超出这个范围的变量,以确定是否在整数的范围,所以IsOverflowInteger写了一个私有方法,用于确定该变量的值()是在一定范围内的数。经过这种治疗,就能处理好一切基本情况。
因此,我认为仍然有许多方法可以改进转换类中现有的方法。如果您有更好更好的功能,请分享它们,使之成为ASP最标准的变量处理类,而不必依赖于ASP那些有限的函数。
下面列出了一些主要方法。请详细查看代码。
类型的判断:
Convert.IsInteger(ByVal值)确定整数只允许0 ~ 9和数
convert.isint(ByVal值)确定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值,一个vstyle)日期格式
convert.formatcur(ByVal值,一个vdecimal)货币格式
convert.formatnum(ByVal值,一个vdecimal)的数字格式
其他格式:
convert.toper(ByVal值,一个值0)%,%
convert.firstuppercase(ByVal值)的首字母大写
convert.safesql(ByVal值)代替'''在SQL。
代码如下:(我不会插入代码,不知道怎么的操作,点插入代码,代码风格不折叠,咨询你的朋友)。
复制代码代码如下所示:
类con_convert
******全球信息
私我,J值0,value1,value2
私有子class_initialize
端子
私有子class_terminate
端子
==============================================================================
检查类型,返回真/假
==============================================================================
公共函数IsStr(ByVal值)
isstr =真
端功能
检查字符串是否为整数***
公共函数IsInteger(ByVal值)
如果修剪(价值)= 或IsNull(值)或IsEmpty(值)然后
霍耳= false
其他的
霍耳=真
值=装饰(价值)
我= 1 len(值)
如果ASC(MID(值,我,ASC(1))> =0(中)和ASC(值,I,1))< = ASC(9)然后
其他的
如果ASC(MID(值,I,1))= ASC()和I = 1
其他的
霍耳= false
退出
最后如果
最后如果
下一个
最后如果
端功能
检查值是否在整数的范围*中
只在这个类中使用
价值:
vbound:马克斯
私有函数IsOverflowInteger(ByVal值,一个vbound)
如果IsInteger(值)和IsInteger(vbound)然后
isoverflowinteger = false
值=装饰(价值)
value1 =装饰(vbound)
如果isoverflowinteger = FALSE然后
从左边删除0个
而(左(value0,1)=0或左(value0,1)= )
值=右(值0,len(值)- 1)
环
而(左(value1,1)=0或左(value1,1)= )
value1 =右(value1,len(中)- 1)
环
如果len(值)= Len(中)然后
我= 1 len(值)
如果ASC(MID(值,I,1))> ASC(MID(value1,I,1))或ASC(MID(中,1))> < 9)<< 0)。
isoverflowinteger =真
退出
最后如果
下一个
其他的
如果len(值)> len(中)然后
isoverflowinteger =真
最后如果
最后如果
最后如果
其他的
isoverflowinteger =真
最后如果
端功能
公共功能isint(ByVal值)
isint =真
如果左(修剪(值),1)= 然后
如果IsOverflowInteger(饰(价值),32768 )然后
isint = false
最后如果
其他的
如果IsOverflowInteger(饰(价值),32767 )然后
isint = false
最后如果
最后如果
端功能
公共函数IsLng(ByVal值)
islng =真
如果左(修剪(值),1)= 然后
如果IsOverflowInteger(饰(价值),2147483648 )然后
islng = false
最后如果
其他的
如果IsOverflowInteger(饰(价值),2147483647 )然后
islng = false
最后如果
最后如果
端功能
**************************************
小数
**************************************
检查字符串是否为十进制***
私有函数isdecimal(ByVal值)
昏暗的intdecimalcount
intdecimalcount = 0
如果修剪(价值)= 或IsNull(值)或IsEmpty(值)然后
isdecimal = false
其他的
isdecimal =真
值=装饰(价值)
我= 1 len(值)
如果ASC(MID(值,我,ASC(1))> =0(中)和ASC(值,I,1))< = ASC(9)然后
其他的
选择案例的ASC(MID(值,I,1))
案例ASC()
如果我= 1然后
其他的
isdecimal = false
退出
最后如果
案例ASC()
如果intdecimalcount<2
intdecimalcount = intdecimalcount + 1
其他的
isdecimal = false
退出
最后如果
其他案件
isdecimal = false
退出
最后选择
最后如果
下一个
最后如果
端功能
检查值是否在小数点的范围*中
只在这个类中使用
价值:
vbound:
私有函数isoverflowdecimal(ByVal值,一个vbound)
如果修剪(价值)= 或IsNull(值)或IsEmpty(值)或装饰(vbound)=
isoverflowdecimal =真
其他的
最后如果
端功能
公共函数IsSng(ByVal值)
issng = isdecimal(价值)
0 140129800000000000000000000000000000000000000000000 340282300000000000000000000000000000000 ~
0.000000000000000000000000000000000000000000001401298 ~ 340282300000000000000000000000000000000
-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值)
如果值= TRUE或值= false或修剪(值)=1 或修剪(值) 0 然后
isbln =真
其他的
isbln = false
最后如果
端功能
公共函数IsDat(ByVal值)
如果修剪(价值)= 或IsNull(值)或IsEmpty(值)然后
isdat = false
其他的
isdat = IsDate(价值)
最后如果
端功能
公共函数IsArr(ByVal值)
如果修剪(价值)= 或IsNull(值)或IsEmpty(值)然后
isarr = false
其他的
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值)
If IsBln (Value) then
tobln = CBool(价值)
其他的
tobln = false
最后如果
端功能
小数vdecimal号:天安门
公共函数ToCur(ByVal值)
如果IsCur(值)然后
tocur = CCUR(价值)
其他的
tocur = 0
最后如果
端功能
VType:对日期格式
今天的公共功能(ByVal值)
如果IsDat(值)然后
今天= CDate(价值)
其他的
今天=
最后如果
端功能
==============================================================================
格式
==============================================================================
*******************************************************
formatdat
vdate
vstyle 0:2008-1-30 1:2008 / 1 / 30 / 30 / 2008 2:1 3:30 / 1 / 2008 4:30-jan-2008
10:2008-1 11:2008 / / 2008 1 12:1
22:jan-2008
30:2008-1-30 11:20:20
40:2008-01-09
公共功能formatdat(ByVal值,一个vstyle)
昏暗的datethis,intstyle
datethis =今天(价值)
intstyle = Toint(vstyle)
如果datethis = 或空(datethis)然后
= formatdat
其他的
昏暗的arrmontharray(12)
ArrMonthArray(1)=简
ArrMonthArray(2)=月
ArrMonthArray(3)=损坏
ArrMonthArray(4)=月
ArrMonthArray(5)=可能
ArrMonthArray(6)=君
ArrMonthArray(7)=月
ArrMonthArray(8)=月
ArrMonthArray(9)=月
arrmontharray(10)=华侨城
ArrMonthArray (11) = NOV
arrmontharray(12)=月
选择案例intstyle
案例1
/ / / CSTR(月(datethis)) / CSTR(天(datethis)) / / / / / / / / / CSTR(月(datethis))。
案例2
/ / CSTR(天(datethis)) / CSTR(年(datethis)) / / / / / / / / / / / CSTR(月(datethis)) / CSTR(天(datethis))
案例3
/ / CSTR(月(datethis)) / CSTR(年(datethis)) / / / / / / / / / / / CSTR(天(datethis)) / CSTR(月(datethis))
案例4
formatdat = CSTR(天(datethis))arrmontharray(月(datethis))CSTR(年(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))小时(datethis)
案例40
formatdat = CSTR(年(datethis))zeropad(CSTR(月(datethis)),2)zeropad(CSTR(天(datethis)),2)。
其他案件
formatdat = CSTR(年(datethis))CSTR(月(datethis))CSTR(天(datethis))
最后选择
最后如果
端功能
**************
formatcur
**************
公共功能formatcur(ByVal值、ByVal vDecimal)
formatcur = formatcurrency(ToCur(价值),ToInt(vdecimal))
端功能
公共功能formatnum(ByVal值、ByVal vDecimal)
formatnum = formatnumber(ToDbl(价值),ToInt(vdecimal))
端功能
==============================================================================
其他格式
==============================================================================
公共函数ToPer(ByVal值,一个值)
如果Convert.ToDbl(值)> 0
酒徒= me.formatnum(convert.todbl(值)/ convert.todbl(值)×100,2)%
其他的
酒徒=0%
最后如果
端功能
值第一代码更改*值>大写
公共功能firstuppercase(ByVal值)
值=装饰(价值)
如果len(值)= 0
= firstuppercase
其他的
firstuppercase = ucase(左(value0,1)右(值),len(值)- 1)
最后如果
端功能
公共函数SafeSql(ByVal值)
safesql =取代(价值,,,)
端功能
类的结束