找回密码
 加入
搜索
查看: 4419|回复: 12

怎么随机生成字母加数字?

 火.. [复制链接]
发表于 2009-12-23 14:21:16 | 显示全部楼层 |阅读模式
本帖最后由 hzxymkb 于 2009-12-23 15:23 编辑

比如:
6m2fw69n   
o66no2        
0m0n5q21     
ffxohzcd      
33eb3t8  

然后发别分他们写到文本文件里!生成6-10位

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2009-12-23 15:01:23 | 显示全部楼层
本帖最后由 sanmoking 于 2009-12-23 15:24 编辑

很简单的啊,等我一下.
$txt = ""
for $t = 1 to 10 ;生成10个字符串
                for $i = 1 to 16 ;字符串长度16位
                        $test =Random (1,3,1)
                        if $test = 1 Then $x = Chr(Random(48,57,1));生成数字
                        if $test = 2 Then $x = Chr(Random(97,122,1));生成小写字母        
                        if $test = 3 Then $x = Chr(Random(65,90,1));生成大写字母
                        $txt = $txt&$x        
                Next
        $txt = $txt&@CRLF        
Next                                
MsgBox(0,"随机字符串",$txt)
写入文本文件的部分我就不管了/////

更新一下:
$txt = ""
for $t = 1 to 10 ;生成10个字符串
for $i = 1 to Random (6,10,1) ;字符串长度随机6-10位
$test =Random (1,3,1)
if $test = 1 Then $x = Chr(Random(48,57,1));生成数字
if $test = 2 Then $x = Chr(Random(97,122,1));生成小写字母 
if $test = 3 Then $x = Chr(Random(65,90,1));生成大写字母
$txt = $txt&$x 
Next
$txt = $txt&@CRLF 
Next 
MsgBox(0,"随机字符串",$txt)
再更新一下,如果算上常规符号的话,更简单,如下:
$txt = ""
for $t = 1 to 10 ;生成10个字符串
  for $i = 1 to Random (6,10,1) ;字符串长度随机6-10位
   $txt = $txt&Chr(Random(33,126,1))
  Next
$txt = $txt&@CRLF 
Next    
MsgBox(0,"随机字符串",$txt)



很有兴致,再来一个,生成[小写字母+数字+大写字母]格式的字符串,非乱序,如下
$txt = ""
for $t = 1 to 10 ;生成10个字符串
$usern1 = ""
for $u = 1 to 6 ;生成6位小写字母
 $usern1 = $usern1&Chr (Random (97,122, 1 ))
Next
$usern2 = ""
for $u = 1 to 4 ;生成4位数字
 $usern2 = $usern2&Random (0,9,1)
Next
$usern3 = ""
for $u = 1 to Random (1,3,1);生成1-3位大写字母
 $usern3 = $usern3&Chr(Random(65,90,1))
Next   
 $txt = $txt&$usern1&$usern2&$usern3&@CRLF 
Next    
MsgBox(0,"随机字符串",$txt)

评分

参与人数 2金钱 +30 贡献 +3 收起 理由
hzxymkb + 10 + 1 辛苦了!谢谢!
afan + 20 + 2

查看全部评分

发表于 2009-12-23 15:05:17 | 显示全部楼层
$STR = "0123456789abcdefghijklmnopqrstuvwxyz"
$max = Random(6, 10, 1)
$key = ""
For $i = 1 To $max
        $key = $key & StringMid($STR, Random(1, 36, 1), 1)
Next
MsgBox(0, 0, $key)

评分

参与人数 2金钱 +25 贡献 +1 收起 理由
hzxymkb + 10 + 1 谢谢!好东西!
afan + 15

查看全部评分

发表于 2009-12-23 15:05:58 | 显示全部楼层
$str = ""
For $i = 1 To Random(6, 10,1)
        If Random(0, 1,1) = 1 Then
                $str &= Random(0, 9,1)
        Else
                $str &= Chr(Random(Asc('a'), Asc('z'),1))
        EndIf
Next
MsgBox(0, 0, $str)

评分

参与人数 2金钱 +25 贡献 +1 收起 理由
hzxymkb + 10 + 1 谢谢!好东西!
afan + 15

查看全部评分

发表于 2009-12-23 15:06:39 | 显示全部楼层
Local $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz', $b
Local $a = StringSplit($str, '')
While 1
        For $i = 1 To Random(6, 10)
                $b &= $a[Random(1, 62)]
        Next
        MsgBox(0, 0, $b, 1)
        $b = ''
WEnd

评分

参与人数 1金钱 +10 贡献 +1 收起 理由
hzxymkb + 10 + 1 好东西

查看全部评分

发表于 2009-12-23 15:08:03 | 显示全部楼层
哈哈,答案好多,好多热心人哦
发表于 2009-12-23 15:14:03 | 显示全部楼层
是啊!高手是越来越多啊!照这样下去论坛人气一定会大大提升。
 楼主| 发表于 2009-12-23 15:24:02 | 显示全部楼层
谢谢楼上的朋友!真的太感谢了!
发表于 2009-12-23 15:24:21 | 显示全部楼层
大灰狼的简单,但违反每个数字字母机会均等的原则,
发表于 2009-12-23 15:42:06 | 显示全部楼层
回复 9# 顽固不化


  受教了。。。只想着如何简单的实现这个目标了。。。
 楼主| 发表于 2009-12-23 15:43:03 | 显示全部楼层
大灰狼的简单,但违反每个数字字母机会均等的原则,
顽固不化 发表于 2009-12-23 15:24


顽固不化 真是高手!这都知道!佩服!
发表于 2009-12-23 23:24:26 | 显示全部楼层
Local $out,$a[63]=[62],$s=48
For $i=1 To 62
        $a[$i] = $s
        $s +=1
        If $s=58 Then
                $s=65
        ElseIf $s=91 Then
                $s=97
        EndIf
Next
For $i=1 To Random(6,10,1)
        $out &= Chr($a[Random(1,62,1)])
Next
MsgBox(0,'',$out)
生成大小写字母加数字
发表于 2009-12-24 13:33:57 | 显示全部楼层
高手越来越多了。。。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-27 21:32 , Processed in 0.086778 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表