Lpad在vbscript中为零

You*_*han 10 vbscript

我正在尝试用左边的0填充一个字符串.输出字符串的长度应为7.这是我的代码:

inputstr = "38"
in = string(7 - Len(inputStr),0) & inputStr
msgbox in
Run Code Online (Sandbox Code Playgroud)

我收到错误预期声明请帮帮我谢谢

And*_*jeŭ 18

以下代码运行速度提高5%:

inputStr = "38"
result = Right("0000000" & inputStr, 7)

msgbox result
Run Code Online (Sandbox Code Playgroud)

  • 我只是使用上面问题中提供的长度。 (2认同)
  • 是一个很好的单线答案,并且直观上正确....正是我所需要的答案-不是函数定义,而是简单,/最快/最直观的东西,我可以将其放入(> 31位无符号十六进制函数)代码。谢谢安德烈。 (2认同)

Ans*_*ers 16

此函数将使用给定的填充字符将输入值左键填充到给定的字符数,而不截断输入值:

Function LPad(s, l, c)
  Dim n : n = 0
  If l > Len(s) Then n = l - Len(s)
  LPad = String(n, c) & s
End Function
Run Code Online (Sandbox Code Playgroud)

输出:

>>> WScript.Echo LPad(12345, 7, "0")
0012345
>>> WScript.Echo LPad(12345, 3, "0")
12345
Run Code Online (Sandbox Code Playgroud)


Ale*_* K. 6

in是一个保留字,所以不能用作变量名,你必须传递一个字符串"0"而不是一个整数0,所以:

inputStr = "38"
result = string(7 - Len(inputStr), "0") & inputStr

msgbox result
Run Code Online (Sandbox Code Playgroud)