2 番目の重要なクラスは型変換用です。クラス名は Con_Convert で、ページ コードの先頭でインスタンス化されます。これは、.net 型変換のオブジェクト名を借用しています。型変換 型変換関数を直接使用すると、変数が空であるか形式が正しくないため、プログラムでエラーが報告されます。たとえば、文字列変数を文字列変数に変換する場合、このエラーはほとんどの場合許容されます。数値、変数が空の場合、通常は自動的に 0 を返す必要があります。
もう 1 つの重要な機能は、可変書式設定操作をカプセル化することです。これにより、時刻形式、通貨形式など、Web サイト全体の均一な出力形式を維持できます。日付や通貨を書式設定する場合、NULL 値によるエラーが非常に発生しやすくなります。一般に、null 値を事前に判断するロジックを作成し、変数をフォーマットする必要があります。このクラスを使用して型変換とフォーマットされた出力を実行した後は、これらの些細な詳細を気にする必要がなくなります。プログラミングの気分を改善します。
他にも追加された書式設定関数があります。たとえば、Convert.ToPer() は数値をパーセンテージに変換するために使用され、Convert.FirstUppercase() は最初の文字を大文字にするために使用されます。このクラスを自由に拡張して、みんなと共有することを忘れないでください。
基本的な関数の中には、何気なく書いていれば気軽に使えるものもありますが、特殊な状況に遭遇した場合には書き直す必要があります。たとえば、私が書いた Convert.ToInt() メソッドは、変数を Integer に変換します。空でない場合は、Cint() を使用してください。ただし、変数が範囲を超えた場合は、Integerの範囲内であるかどうかを判定する必要があるので、変数の値が一定の範囲内の数値であるかどうかを判定するプライベートメソッドを書いたのですが、このような処理を行った後だと思います。基本的にあらゆる状況に対応できます。
したがって、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(Val 値による)
型変換:
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 value) は SQL の 'for' を置き換えます
コードは次のとおりです: (コードの挿入方法がわかりません。CSDN の動作もわかりません。クリックしてコードを挿入すると、コード折りたたみスタイルではなく <textarea> になります。お問い合わせください。)それを知っている友人がアドバイスを求めます。)
次のようにコードをコピーします。
クラスCon_Convert
'******グローバルメッセージ
プライベート i、j、値 0、値 1、値 2
プライベートサブクラス_初期化
エンドサブ
プライベートサブクラス_Terminate
エンドサブ
' ================================================ =============================
' タイプをチェックし、true/false を返します
' ================================================ =============================
パブリック関数 IsStr(ByVal 値)
IsStr=true
終了機能
'****** 文字列が整数であるかどうかをチェックする
パブリック関数 IsInteger(ByVal 値)
Trim(Value)= または IsNull(Value) または IsEmpty(Value) の場合
IsInteger=false
それ以外
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 = false
出口
終了する場合
終了の場合
次
終了する場合
終了機能
'****** 値が整数の範囲内にあるかどうかを確認します
'このクラスでのみ使用します
' 価値:
' vBound : 最大
プライベート関数 IsOverflowInteger(ByVal Value,ByVal vBound)
IsInteger(Value) と IsInteger(vBound) の場合
IsOverflowInteger=false
値0=トリム(値)
値1=トリム(vBound)
IsOverflowInteger=false の場合
'左から0を削除
do while ( left(value0,1)=0 または left(value0,1)=- )
値0=右(値0,len(値0)-1)
ループ
do while ( left(value1,1)=0 または left(value1,1)=- )
値1=右(値1,レン(値1)-1)
ループ
len(value0)=len(value1) の場合
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
のために出る
終了する場合
次
それ以外
if len(value0)>len(value1)
IsOverflowInteger=true
終了する場合
終了する場合
終了する場合
それ以外
IsOverflowInteger=true
終了する場合
終了機能
パブリック関数 IsInt(ByVal 値)
IsInt=true
if left(trim(value),1)=- then
if IsOverflowInteger(trim(value),-32768) then
IsInt=false
終了する場合
それ以外
if IsOverflowInteger(trim(value),32767) then
IsInt=false
終了する場合
終了する場合
終了関数
パブリック関数 IsLng(ByVal 値)
IsLng=true
if left(trim(value),1)=- then
if IsOverflowInteger(trim(value),-2147483648) then
IsLng=false
終了する場合
それ以外
if IsOverflowInteger(trim(value),2147483647) then
IsLng=false
終了する場合
終了する場合
終了機能
「******************************************
'10 進数
「******************************************
'****** 文字列が 10 進数であるかどうかを確認します
プライベート関数 IsDecimal(ByVal 値)
dim intDecimalCount
intDecimalCount=0
Trim(Value)= または IsNull(Value) または IsEmpty(Value) の場合
IsDecimal=false
それ以外
IsDecimal = 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))
昇順(-)の場合
i=1 の場合
それ以外
IsDecimal = false
出口
終了する場合
case Asc(.)
intDecimalCount<2 の場合、
intDecimalCount=intDecimalCount + 1
それ以外
IsDecimal = false
出口
終了する場合
それ以外の場合
IsDecimal = false
出口
エンドセレクト
終了の場合
次
終了する場合
終了機能
'****** 値が 10 進数の範囲内にあるかどうかを確認します
'このクラスでのみ使用します
' 価値:
'vBound:
プライベート関数 IsOverflowDecimal(ByVal Value,ByVal vBound)
Trim(Value)= または IsNull(Value) または IsEmpty(Value) または Trim(vBound)= または IsNull(vBound) または IsEmpty(vBound) の場合
IsOverflowDecimal=true
それ以外
終了する場合
終了機能
パブリック関数 IsSng(ByVal 値)
IsSng=IsDecimal(値)
' -340282300000000000000000000000000000000 ~ -0.000000000000000000000000000000000000000000001401298
' 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=true
それ以外
IsBln=false
終了する場合
終了機能
パブリック関数 IsDat(ByVal 値)
Trim(Value)= または IsNull(Value) または IsEmpty(Value) の場合
IsDat=false
それ以外
IsDat=IsDate(値)
終了する場合
終了機能
パブリック関数 IsArr(ByVal 値)
Trim(Value)= または IsNull(Value) または IsEmpty(Value) の場合
IsArr=false
それ以外
IsArr=IsArray(値)
終了する場合
終了機能
' ================================================ =============================
'型、戻り値/初期値の変換
' ================================================ =============================
パブリック関数 ToStr(ByVal 値)
ToStr=トリム(値)
終了機能
パブリック関数 ToInt(ByVal 値)
IsInt(Value) の場合
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=false
終了する場合
終了機能
'****** vDecimal : 小数点以下の桁数
パブリック関数 ToCur(ByVal 値)
IsCur(Value) の場合
ToCur=ccur(値)
それ以外
ToCur=0
終了する場合
終了機能
'****** vType: 日付の形式
パブリック関数 ToDat(ByVal 値)
IsDat(Value) の場合
ToDat=cdate(値)
それ以外
日付=
終了する場合
終了機能
' ================================================ =============================
'形式
' ================================================ =============================
'************************************************ * ***
'フォーマットデータ
'vdate
'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:2008/1
'22:2008年1月
'30:2008-1-30 11:20:20
'40:2008-01-09
パブリック関数 FormatDat(ByVal Value, ByVal vStyle)
dim dateThis,intStyle
dateThis=ToDat(値)
intStyle=ToInt(vStyle)
dateThis= または isnull(dateThis) の場合
フォーマットデータ =
それ以外
ディム arrMonthArray(12)
arrMonthArray(1)=JAN
arrMonthArray(2)=FEB
arrMonthArray(3)=MAR
arrMonthArray(4)=APR
arrMonthArray(5)=MAY
arrMonthArray(6)=JUN
arrMonthArray(7)=7 月
arrMonthArray(8)=8 月
arrMonthArray(9)=SEP
arrMonthArray(10)=10月
arrMonthArray(11)=11 月
arrMonthArray(12)=12 月
intStyle のケースを選択
ケース1
FormatDat=cstr(year(dateThis)) &/& cstr(month(dateThis)) &/& cstr(day(dateThis))
ケース2
FormatDat= cstr(month(dateThis)) &/& cstr(day(dateThis)) &/& cstr(year(dateThis))
ケース3
FormatDat= cstr(day(dateThis)) &/& cstr(month(dateThis)) &/& cstr(year(dateThis))
ケース4
FormatDat= cstr(day(dateThis)) &-& arrMonthArray(month(dateThis)) &-& cstr(year(dateThis))
ケース10
FormatDat=cstr(年(日付この)) &-& cstr(月(日付この))
ケース11
FormatDat=cstr(年(日付この)) &/& cstr(月(日付この))
ケース12
FormatDat= cstr(month(dateThis)) &/& cstr(year(dateThis))
ケース22
FormatDat= arrMonthArray(month(dateThis)) &-& cstr(year(dateThis))
ケース30
FormatDat= cstr(年(日付この)) &-& cstr(月(日付この)) &-& cstr(日(日付この)) & & 時(日付この) &:& 分(日付この) &:& 秒(日付この)
ケース40
FormatDat=cstr(year(dateThis)) &-& ZeroPad(cstr(month(dateThis)),2) &-& ZeroPad(cstr(day(dateThis)),2)
それ以外の場合
FormatDat=cstr(年(日付この)) &-& cstr(月(日付この)) &-& cstr(日(日付この))
エンドセレクト
終了する場合
終了機能
「******************」
'フォーマットカー
「******************」
パブリック関数 FormatCur(ByVal Value,ByVal vDecimal)
FormatCur=Formatcurrency(ToCur(値),ToInt(vDecimal))
終了機能
パブリック関数 FormatNum(ByVal Value,ByVal vDecimal)
FormatNum=FormatNumber(ToDbl(値),ToInt(vDecimal))
終了機能
' ================================================ =============================
'他のフォーマット
' ================================================ =============================
パブリック関数 ToPer(Byval 値,Byval 値 0)
if Convert.ToDbl(value0)<>0 then
ToPer = me.FormatNum( Convert.ToDbl(値) / Convert.ToDbl(値0) * 100,2 ) & %
それ以外
トパー = 0.00%
終了する場合
終了機能
'****** 値 -> 値の最初のコードを大文字に変更
パブリック関数 FirstUppercase(ByVal 値)
値0 = トリム(値)
len(value0)=0 の場合
最初の大文字=
それ以外
FirstUppercase = UCase(left(value0,1)) & right(value0,len(value0)-1)
終了する場合
終了機能
パブリック関数 SafeSql(ByVal 値)
SafeSql = replace(値,','')
終了機能
終了クラス