คลาสที่สำคัญที่สองคือการแปลงประเภท ชื่อคลาสคือ Con_Convert มันถูกสร้างอินสแตนซ์ที่จุดเริ่มต้นของโค้ดหน้า ชื่อวัตถุคือ Convert ซึ่งยืมชื่อวัตถุของการแปลงประเภท .net คลาสนี้ส่วนใหญ่จะแก้ปัญหาของ การแปลงประเภท การใช้ฟังก์ชันการแปลงประเภทโดยตรงจะทำให้โปรแกรมรายงานข้อผิดพลาดเนื่องจากตัวแปรว่างเปล่าหรือมีรูปแบบที่ไม่ถูกต้อง และข้อผิดพลาดนี้ได้รับอนุญาตในกรณีส่วนใหญ่ ตัวอย่างเช่น หากคุณต้องการแปลงตัวแปรสตริงเป็น number ถ้าตัวแปรว่างเปล่า โดยทั่วไปคุณจะต้องคืนค่า 0 โดยอัตโนมัติ
ฟังก์ชั่นที่สำคัญอีกประการหนึ่งคือการสรุปการดำเนินการจัดรูปแบบตัวแปร ซึ่งสามารถรักษารูปแบบเอาต์พุตที่สม่ำเสมอของทั้งเว็บไซต์ เช่น รูปแบบเวลา รูปแบบสกุลเงิน ฯลฯ เมื่อจัดรูปแบบวันที่และสกุลเงิน จะพบข้อผิดพลาดได้ง่ายมากเนื่องจากค่าว่าง โดยทั่วไป ฉันต้องเขียนตรรกะเพื่อตัดสินค่า Null ล่วงหน้า จากนั้นจึงจัดรูปแบบตัวแปร หลังจากใช้คลาสนี้เพื่อรับผิดชอบในการแปลงประเภทและเอาต์พุตที่จัดรูปแบบแล้ว ฉันไม่ต้องกังวลกับรายละเอียดเล็กๆ น้อยๆ เหล่านี้ ซึ่งสามารถทำได้อย่างมาก ปรับปรุงอารมณ์การเขียนโปรแกรมของฉัน
นอกจากนี้ยังมีฟังก์ชันการจัดรูปแบบอื่นๆ ที่เพิ่มเข้ามา เช่น Convert.ToPer() ใช้สำหรับแปลงตัวเลขเป็นเปอร์เซ็นต์, Convert.FirstUppercase() ใช้ในการแปลงตัวอักษรตัวแรกให้เป็นตัวพิมพ์ใหญ่... ได้ตามต้องการ รู้สึกได้เลย ขยายคลาสนี้ได้ฟรี และอย่าลืมแชร์กับทุกคนด้วย
ฟังก์ชั่นพื้นฐานบางอย่างสามารถใช้ได้แบบไม่เป็นทางการหากเขียนแบบไม่เป็นทางการ แต่เมื่อเผชิญกับสถานการณ์พิเศษ จะต้องเขียนใหม่ ตัวอย่างเช่น วิธีการ Convert.ToInt() ที่ฉันเขียนจะแปลงตัวแปรเป็น Integer การดำเนินการขั้นพื้นฐานที่สุดคือตรวจสอบว่าเป็นหรือไม่ ว่างเปล่า ถ้าไม่ใช่ ให้ใช้ Cint() แต่เมื่อตัวแปรเกิน range คุณต้องพิจารณาว่ามันอยู่ในช่วงของ Integer หรือไม่ ดังนั้นผมจึงเขียนเมธอดส่วนตัว 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, ByVal vDecimal) การจัดรูปแบบสกุลเงิน
Convert.FormatNum(ByVal Value,ByVal vDecimal) การจัดรูปแบบตัวเลข
การจัดรูปแบบอื่นๆ:
Convert.ToPer(ค่า Byval, ค่า Byval0) เปอร์เซ็นต์ โดยมี %
Convert.FirstUppercase(ByVal value) ใช้ตัวอักษรตัวแรกเป็นตัวพิมพ์ใหญ่
Convert.SafeSql (ค่า ByVal) แทนที่ 'for' ใน sql
รหัสเป็นดังนี้: (ฉันไม่รู้วิธีใส่รหัส และไม่รู้ว่า CSDN ทำงานอย่างไร เมื่อคุณคลิกเพื่อใส่รหัส มันเป็น <textarea> ไม่ใช่รูปแบบการพับโค้ด กรุณาถาม เพื่อนๆผู้รู้มาขอคำแนะนำครับ)
คัดลอกรหัสรหัสดังต่อไปนี้:
คลาส Con_Convert
'****** ข้อความทั่วโลก
ส่วนตัว i,j,value0,value1,value2
คลาสย่อยส่วนตัว_เริ่มต้น
จบหมวดย่อย
Class_Terminate ย่อยส่วนตัว
จบหมวดย่อย
' =================================================' =============================
' ตรวจสอบประเภท ส่งกลับจริง/เท็จ
' =================================================' =============================
ฟังก์ชั่นสาธารณะ IsStr (ค่า ByVal)
IsStr=จริง
ฟังก์ชันสิ้นสุด
'****** ตรวจสอบสตริงว่าเป็นจำนวนเต็มหรือไม่
ฟังก์ชั่นสาธารณะ IsInteger (ค่า ByVal)
ถ้า Trim(Value)= หรือ IsNull(Value) หรือ IsEmpty(Value) แล้ว
IsInteger=เท็จ
อื่น
เป็นจำนวนเต็ม = True
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, ByVal vBound)
ถ้า IsInteger(Value) และ IsInteger(vBound) แล้ว
IsOverflowInteger=เท็จ
value0=ตัดแต่ง(ค่า)
value1=ตัดแต่ง(vBound)
ถ้า IsOverflowInteger=false แล้ว
'ลบ 0 จากซ้าย'
ทำในขณะที่ ( left(value0,1)=0 หรือ left(value0,1)=- )
value0=right(value0,len(value0)-1)
วนซ้ำ
ทำในขณะที่ ( left(value1,1)=0 หรือ left(value1,1)=- )
value1=right(value1,len(value1)-1)
วนซ้ำ
ถ้า len(value0)=len(value1) แล้ว
สำหรับ i=1 ถึง len(value0)
ถ้า 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=จริง
ออกเพื่อ
สิ้นสุดถ้า
ต่อไป
อื่น
ถ้า len(value0)>len(value1) แล้ว
IsOverflowInteger=จริง
สิ้นสุดถ้า
สิ้นสุดถ้า
สิ้นสุดถ้า
อื่น
IsOverflowInteger=จริง
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
ฟังก์ชั่นสาธารณะ IsInt (ค่า ByVal)
IsInt=จริง
ถ้า left(trim(value),1)=- แล้ว
ถ้า IsOverflowInteger(trim(value),-32768) แล้ว
IsInt=เท็จ
สิ้นสุดถ้า
อื่น
ถ้า IsOverflowInteger(trim(value),32767) แล้ว
IsInt=เท็จ
สิ้นสุดถ้า
สิ้นสุดถ้า
ฟังก์ชั่นสิ้นสุด
ฟังก์ชั่นสาธารณะ IsLng (ค่า ByVal)
IsLng=จริง
ถ้า left(trim(value),1)=- แล้ว
ถ้า IsOverflowInteger(trim(value),-2147483648) แล้ว
IsLng=เท็จ
สิ้นสุดถ้า
อื่น
ถ้า IsOverflowInteger(trim(value),2147483647) แล้ว
IsLng=เท็จ
สิ้นสุดถ้า
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
-
'ทศนิยม
-
'****** ตรวจสอบสตริงว่าเป็นทศนิยมหรือไม่
ฟังก์ชั่นส่วนตัว IsDecimal (ค่า ByVal)
intDecimalCount สลัว
intDecimalCount=0
ถ้า Trim(Value)= หรือ IsNull(Value) หรือ IsEmpty(Value) แล้ว
เป็นทศนิยม=เท็จ
อื่น
เป็นทศนิยม = จริง
value0=ตัดแต่ง(ค่า)
สำหรับ i = 1 ถึง len (value0)
ถ้า Asc(Mid(value0, i, 1))>= Asc(0) และ Asc(Mid(value0, i, 1)) <= Asc(9) แล้ว
อื่น
เลือกกรณี Asc (กลาง (ค่า 0, i, 1))
กรณี Asc(-)
ถ้า i=1 แล้ว
อื่น
เป็นทศนิยม = เท็จ
ออกเพื่อ
สิ้นสุดถ้า
กรณี Asc(.)
ถ้า intDecimalCount<2 แล้ว
intDecimalCount=intDecimalCount + 1
อื่น
เป็นทศนิยม = เท็จ
ออกเพื่อ
สิ้นสุดถ้า
กรณีอื่น
เป็นทศนิยม = เท็จ
ออกเพื่อ
สิ้นสุดการเลือก
สิ้นสุดถ้า
ต่อไป
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
'****** ตรวจสอบว่าค่าอยู่ในช่วงทศนิยมหรือไม่
'ใช้เฉพาะในคลาสนี้เท่านั้น'
' ค่า:
'vBound:
ฟังก์ชั่นส่วนตัว IsOverflowDecimal (ค่า ByVal, ByVal vBound)
ถ้า Trim(Value)= หรือ IsNull(Value) หรือ IsEmpty(Value) หรือ Trim(vBound)= หรือ IsNull(vBound) หรือ IsEmpty(vBound) แล้ว
IsOverflowDecimal=จริง
อื่น
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
ฟังก์ชั่นสาธารณะ IsSng (ค่า ByVal)
IsSng=IsDecimal(ค่า)
' -340282300000000000000000000000000000000 ~ -0.000000000000000000000000000000000000000000001401298
' 0.0000000000000000000000000000000000000000001401298 ~ 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)
ถ้า Trim(Value)= หรือ IsNull(Value) หรือ IsEmpty(Value) แล้ว
IsDat=เท็จ
อื่น
IsDat=IsDate(ค่า)
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
ฟังก์ชั่นสาธารณะ IsArr (ค่า ByVal)
ถ้า Trim(Value)= หรือ IsNull(Value) หรือ IsEmpty(Value) แล้ว
IsArr=เท็จ
อื่น
IsArr=IsArray(ค่า)
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
' =================================================' =============================
'ประเภทการแปลง ค่าส่งคืน/ค่าเริ่มต้น
' =================================================' =============================
ฟังก์ชั่นสาธารณะ ToStr (ค่า ByVal)
ToStr=ตัดแต่ง(ค่า)
ฟังก์ชันสิ้นสุด
ฟังก์ชั่นสาธารณะ ToInt (ค่า ByVal)
ถ้า IsInt(Value) แล้ว
ToInt=Cint(มูลค่า)
อื่น
ถึงInt=0
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
ฟังก์ชั่นสาธารณะ ToLng (ค่า ByVal)
ถ้า IsLng(ค่า) แล้ว
ToLng=clng(ค่า)
อื่น
ถึงLng=0
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
ฟังก์ชั่นสาธารณะ ToSng (ค่า ByVal)
ถ้า IsSng(Value) แล้ว
ToSng=cSng(ค่า)
อื่น
ถึงSng=0
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
ฟังก์ชั่นสาธารณะ ToDbl (ค่า ByVal)
ถ้า IsDbl(Value) แล้ว
ToDbl=cDbl(ค่า)
อื่น
ถึงDbl=0
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
ฟังก์ชั่นสาธารณะ ToBln (ค่า ByVal)
ถ้า IsBln(ค่า) แล้ว
ToBln=cbool(ค่า)
อื่น
ToBln=เท็จ
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
'****** vDecimal : จำนวนตำแหน่งทศนิยม
ฟังก์ชั่นสาธารณะ ToCur (ค่า ByVal)
ถ้า IsCur(มูลค่า) แล้ว
ToCur=ccur(มูลค่า)
อื่น
ทูเคอร์=0
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
'****** vType: รูปแบบของวันที่
ฟังก์ชั่นสาธารณะ ToDat (ค่า ByVal)
ถ้า IsDat(Value) แล้ว
ToDat=cdate(ค่า)
อื่น
โทดาท=
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
' =================================================' =============================
'รูปแบบ
' =================================================' =============================
'************************************************ * ***
'ฟอร์แมตดาท
'vdate
'vStyle 0:2008-1-30 1:30/1/2551 2:1/30/2551 3:30/1/2551 4:30-ม.ค.-2551
' 10:2008-1 11:2008/1 12:1/2008
'22:ม.ค.-2551
'30:2008-1-30 11:20:20
'40:2008-01-09
ฟังก์ชั่นสาธารณะ FormatDat (ค่า ByVal, ByVal vStyle)
วันที่มืดมนนี้ intStyle
dateThis=ToDat(มูลค่า)
intStyle=ToInt(vStyle)
ถ้า dateThis= หรือ isnull(dateThis) แล้ว
ฟอร์แมตดาต =
อื่น
Dim arrMonthArray(12)
arrMonthArray(1)=ม.ค
arrMonthArray(2)=ก.พ
arrMonthArray(3)=มี.ค
arrMonthArray(4)=เม.ย
arrMonthArray(5)=พฤษภาคม
arrMonthArray(6)=มิ.ย
arrMonthArray(7)=ก.ค
arrMonthArray(8)=ส.ค
arrMonthArray(9)=ก.ย
arrMonthArray(10)=ต.ค
arrMonthArray(11)=พ.ย
arrMonthArray(12)=ธ.ค
เลือกกรณี intStyle
กรณีที่ 1
FormatDat=cstr(ปี(dateThis)) &/& cstr(เดือน(dateThis)) &/& cstr(วัน(dateThis))
กรณีที่ 2
FormatDat= cstr(เดือน(dateThis)) &/& cstr(วัน(dateThis)) &/& cstr(ปี(dateThis))
กรณีที่ 3
FormatDat= 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) &:& นาที(dateThis) &:& วินาที (dateThis)
กรณีที่ 40
FormatDat=cstr(ปี(dateThis)) &-& ZeroPad(cstr(เดือน(dateThis)),2) &-& ZeroPad(cstr(วัน(dateThis)),2)
กรณีอื่น
FormatDat=cstr(ปี(dateThis)) &-& cstr(เดือน(dateThis)) &-& cstr(วัน(dateThis))
สิ้นสุดการเลือก
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
-
'ฟอร์แมตเคอร์
-
ฟังก์ชั่นสาธารณะ FormatCur (ค่า ByVal, ByVal vDecimal)
FormatCur=Formatcurrency(ToCur(มูลค่า),ToInt(vDecimal))
ฟังก์ชันสิ้นสุด
ฟังก์ชั่นสาธารณะ FormatNum (ค่า ByVal, ByVal vDecimal)
FormatNum=FormatNumber(ToDbl(ค่า),ToInt(vDecimal))
ฟังก์ชันสิ้นสุด
' =================================================' =============================
'รูปแบบอื่น
' =================================================' =============================
ฟังก์ชั่นสาธารณะ ToPer (ค่า Byval, ค่า Byval0)
ถ้า Convert.ToDbl(value0)<>0 แล้ว
ToPer = me.FormatNum( Convert.ToDbl(ค่า) / Convert.ToDbl(value0) * 100,2 ) & %
อื่น
โตเปอร์ = 0.00%
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
'****** value -> ค่ารหัสแรกเปลี่ยนเป็นตัวพิมพ์ใหญ่
ฟังก์ชั่นสาธารณะ FirstUppercase (ค่า ByVal)
value0 = ตัดแต่ง (ค่า)
ถ้า len(value0)=0 แล้ว
ตัวพิมพ์ใหญ่ตัวแรก=
อื่น
ตัวพิมพ์ใหญ่ตัวแรก = UCase(ซ้าย(ค่า0,1)) & ขวา(value0,len(value0)-1)
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
ฟังก์ชั่นสาธารณะ SafeSql (ค่า ByVal)
SafeSql = แทนที่ (ค่า,','')
ฟังก์ชันสิ้นสุด
จบคลาส