在 vbscript 函数中扩展数组
Extending array in vbscript function
我发现 following VBscript function to generate a random code 使用大写和小写字符。
我想扩展它以包含数字 - 我尝试添加额外的几行(max3 和 min3)
,但我不确定如何更改数组以允许新变量。
Function GenerateRandomString(StrLen,upper,lower,numeric)
Dim charCase
' ASCII: Lowercase Alpha Characters
max=122
min=97
' ASCII: Capital Alpha Characters
max2=90
min2=65
// THIS BELOW IS WHAT I ADDED:
' ASCII: numeric Characters
max3=57
min3=49
// END ADD
For i=0 To (StrLen-1)
Randomize
charCase = Array((max-min+1)*Rnd+min,(max2-min2+1)*Rnd+min2) <!-- Not sure how to change this?
myStr = myStr & Chr(int(charCase(int(Rnd*2))))
Next
GenerateRandomString = myStr
End Function
代码创建一个包含 2 个值的数组,然后选择其中一个。最简单的解决方案是向数组添加第三个值:
Randomize
For i=0 To (StrLen-1)
charCase = Array((max - min + 1) * Rnd + min, _
(max2 - min2 + 1) * Rnd + min2, _
(max3 - min3 + 1) * Rnd + min3)
myStr = myStr & Chr(int(charCase(int(Rnd * 3))))
Next
另一种选择是使用您想要的值创建一个字符串并使用它:
letters ="0123456789ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz"
For i=0 To (StrLen-1)
' Pick a random letter from the string and add to the result
myStr = myStr & Mid(letters, int(Rnd * Len(letters)) + 1, 1)
Next
我发现 following VBscript function to generate a random code 使用大写和小写字符。 我想扩展它以包含数字 - 我尝试添加额外的几行(max3 和 min3) ,但我不确定如何更改数组以允许新变量。
Function GenerateRandomString(StrLen,upper,lower,numeric)
Dim charCase
' ASCII: Lowercase Alpha Characters
max=122
min=97
' ASCII: Capital Alpha Characters
max2=90
min2=65
// THIS BELOW IS WHAT I ADDED:
' ASCII: numeric Characters
max3=57
min3=49
// END ADD
For i=0 To (StrLen-1)
Randomize
charCase = Array((max-min+1)*Rnd+min,(max2-min2+1)*Rnd+min2) <!-- Not sure how to change this?
myStr = myStr & Chr(int(charCase(int(Rnd*2))))
Next
GenerateRandomString = myStr
End Function
代码创建一个包含 2 个值的数组,然后选择其中一个。最简单的解决方案是向数组添加第三个值:
Randomize
For i=0 To (StrLen-1)
charCase = Array((max - min + 1) * Rnd + min, _
(max2 - min2 + 1) * Rnd + min2, _
(max3 - min3 + 1) * Rnd + min3)
myStr = myStr & Chr(int(charCase(int(Rnd * 3))))
Next
另一种选择是使用您想要的值创建一个字符串并使用它:
letters ="0123456789ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz"
For i=0 To (StrLen-1)
' Pick a random letter from the string and add to the result
myStr = myStr & Mid(letters, int(Rnd * Len(letters)) + 1, 1)
Next