سؤال

وأنا بحاجة إلى سلسلة، استنادا إلى عدد صحيح، والذي ينبغي أن يكون دائما 5 أرقام.

مثال:

myInteger = 999
formatedInteger = "00999"

ما هي أفضل طريقة للقيام بذلك في ASP الكلاسيكية؟

هل كانت مفيدة؟

المحلول

ويمكنك استخدام وظائف سلسلة التلاعب لذلك.

وهذا يفترض ASP الكلاسيكية مع VBScript (النسخة الأصلية من الجواب).

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

وهذه محاولة لبطانة واحدة (وأيضا، وهما مع منع الخطأ):

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

وحقا، يجب عليك أن تسأل نفسك لماذا قد ترغب بذلك.

وإذا كان هذا هو لأغراض العرض ثم هو على الأرجح أفضل لتطبيق الدالة سلسلة تنسيق (سوف يكون هناك واحد) إلى عدد صحيح الخاص بك، عند نقطة العرض.

ومن ناحية أخرى، إذا كنت في حاجة إليها للمعالجة الداخلية، أي كنت تتوقع دائما خمسة أرقام في حلقة أو أيا كان، ولكن كنت لا أتوقع أن القيام بعملية حسابية على القيمة، ثم تحويل عدد صحيح إلى سلسلة أولا، ثم القيام أية معالجة.

وباختصار، تحويل متغير عدد صحيح إلى سلسلة وتخزينها في متغير جديد، ثم استخدام ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top