随机质量差的很 本帖最后由 baitang36 于 2024-10-31 15:19 编辑
kozmosovia 发表于 2024-10-31 10:24
随机质量差的很
你没仔细看程序,第一个字母是每10秒换一次,第6个字符是1毫秒换一次。这是故意这么做的。
发布源码的目的是授人以渔,代码本身没多少技术含量,喜欢的人可以随意改,不喜欢无视即可。
你可以随意改自己不满意的地方。
猫老师也写过这个,代码如果发出来会吓着你的。
tryhi问为什么重复的内容不改成一个函数,也是为了这个,你可以随意去修改它。
本帖最后由 kozmosovia 于 2024-10-31 16:55 编辑
不算随机数的生成随机字符串(Defun RandomStr (len / _Core IDX PWD RTN TXT)
(Defun _Core ()
;;;; GUID只保留数字
(vl-list->string
(vl-remove-if-not
(function (lambda (x) (< 47 x 58)))
(vl-string->list
(vlax-get (vlax-create-object "Scriptlet.TypeLib") "GUID")
)
)
)
)
;;; 生成ASCII=48~122的所有字符
(setq idx 47)
(while (<= (setq idx (1+ idx)) 122)
(setq pwd (cons (chr idx) pwd))
)
;;; 去除不需要的特殊字符
(foreach abc '("/" "[" "]" "=" ":" ";" "`" "^" "\\" "?" ">" "<" "@")
(setq pwd (vl-remove abc pwd))
)
(setqidx (length pwd)
txt (_Core)
rtn ""
)
;;;利用GUID创建长度为(4*指定长度)的数字字符串
(while (< (strlen txt) (* 4 len))
(setq txt (strcat txt (_Core)))
)
(repeat len
;;;每4个数字转成<9999的整数对字符表长度取模,根据模数据提取对应的字符
(setq rtn (strcat rtn
(nth (rem (atoi (substr txt 1 4)) idx)
pwd
)
)
txt (substr txt 5)
)
)
rtn
)
(repeat 11 (princ (strcat "\n " (RandomStr 20))))
kozmosovia 发表于 2024-10-31 10:24
随机质量差的很
要感谢盛老师分享,如果有更好的可以发出来,也是个思路,倒不必这样说。 谢谢分享,收集一下看什么时候能用上
页:
1
[2]