帮小弟翻译一下,实在是看不明白啊!
Function gen_key(digits)'定义并初始化数组
dim char_array(80) '初始化数字
For i = 0 To 9
char_array(i) = CStr(i)
Next
'初始化大写字母
For i = 10 To 35
char_array(i) = Chr(i + 55)
Next
'初始化小写字母
For i = 36 To 61
char_array(i) = Chr(i + 61)
Next
Randomize '初始化随机数生成器。
do while len(output) < digits
num = char_array(Int((62 - 0 + 1) * Rnd + 0))
output = output + num
loop
'设置返回值
gen_key = output
End Function
'把结果返回给浏览器
response.write "本实例生成的十三位随机字符串为:"
response.write "<center>"
response.write gen_key(13)
response.write "</center>"
看不懂的地方如下:
1、gen_key这里应该翻译成什么?怎么理解这个变量名的意思?
2、'定义并初始化数组
dim char_array(80)
这里为什么把数组定义为80,下边i的值最大才61啊,为什么不定义成61
3、do while len(output) < digits 这一句的意思是说当符合这一条件时执行,也就是说output最多为12个字节,当他为12个字节的时候再执行一次下边的代码,output的字节变变成了13个字节,然后不符合while后边的条件不再循环,执行loop后边的代码。请问这里的理解正确吗?
4、这也是我最不理解的地方: num = char_array(Int((62 - 0 + 1) * Rnd + 0)) 这句这是这么理解的,因为在上边初始化的时候,已经对char_array(i)进行了赋值。所以这句的作用就是产生一个任意的大、小写字母或者数字。也就是说Int((62 - 0 + 1) * Rnd + 0里边的值的范畴为0-61.这句代码里边int函数的意思是返回括号里的数字的整数部分,后边就不怎么理解了,初步理解:*的意思是乘 Rnd函数是随机产生一个数字的意思int括号里边的参数是什么意思啊,为什么要写成这样一个表达式,为什么不直接写成63,这里62表示的是什么意思啊?还有后边的*rnd
是什么意思?+0又怎么理解?
5、最后一个问题就简单了点
response.write "本实例生成的十三位随机字符串为:"
response.write "<center>"
response.write gen_key(13)
response.write "</center>"
这四句代码可不可以写在一行里边
可能有些大哥看到这么多问题已经有些感到不耐烦了,我只好说抱歉了,出自一个文件里边,只好放在一起提问了,
如果大家实在没时间的话回答一个小弟就很感激了!!
为了方便大家看代码,我把有问题的地方都用红色标出来了,