質問

常に5桁の整数に基づく文字列が必要です。

例:

myInteger = 999
formatedInteger = "00999"

従来のASPでこれを行う最良の方法は何ですか?

役に立ちましたか?

解決

これには文字列操作関数を使用できます。

これは、VBScriptを使用した従来のASP(回答のオリジナルバージョン)を前提としています。

Const NUMBER_DIGITS = 5

Dim myInteger
Dim formatedInteger

myInteger = 999
formatedInteger = Right(String(NUMBER_DIGITS, "0") & myInteger, NUMBER_DIGITS)

可変幅のパディングを提供する、関数にラップされた最適化されたバージョン:

Const NUMBER_PADDING = "000000000000" ' a few zeroes more just to make sure

Function ZeroPadInteger(i, numberOfDigits)
  ZeroPadInteger = Right(NUMBER_PADDING & i, numberOfDigits)
End Function

' Call in code:

strNumber = ZeroPadInteger(myInteger, 5)

他のヒント

このようなものは、私がほとんど見たものです:

function PadNumber(number, width)
   dim padded : padded = cStr(number)

   while (len(padded) < width)
       padded = "0" & padded
   wend

   PadNumber = padded
end function

PadNumber(999, 5) '00999

1行(これはエラー防止機能付き)で試してください:

function padZeroDigits(sVariable, iLength)
    if (iLength <= len(sVariable)) then padZeroDigits = sVariable : exit function : end if
    padZeroDigits = string(iLength - len(sVariable),"0") & sVariable
end function

本当に、なぜこれが必要なのかを自問するべきです。

これが表示目的の場合、おそらく表示の時点で、整数に文字列フォーマット関数(1つあります)を適用するのが最善です。

一方、内部処理に必要な場合、つまり、常に5桁のループなどを期待しているが、値の算術演算を期待していない場合は、整数を文字列に変換しますまず処理を行います。

要するに、整数変数を文字列に変換して新しい変数に保存し、それを使用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top