如何生成的这个模式使用LotusScript 8个字符的字符串?例如:0E 1F A3 ZK(每两个字符后面都有空格,包括最后一个字符)。每个字符只能是0-9或A-Z(仅限大写)。我用前Randomize
和Rnd
方法,在这里将它的想法,但我不知道这是正确的做法,以及如何实现这一目标。另一件事是这个字符串将被保存到我的文档,我有一个视图,列出每个生成的字符串。这意味着每次生成一个字符串时,它必须是唯一的。如果生成的字符串已在另一个文档中使用,则继续生成,直到生成一个尚未使用的字符串。Lotusscript生成随机8个字符的字符串?
回答
是的,您也可以在这种情况下使用Rnd
。
定义一个函数getRandom()
它给你一个随机字符串格式为“XX XX XX XX”,每次调用。
Function getRandom() As String
Const charList = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
getRandom = _
Mid(charList, 35*Rnd+1, 1) + Mid(charList, 35*Rnd+1, 1) + " " + _
Mid(charList, 35*Rnd+1, 1) + Mid(charList, 35*Rnd+1, 1) + " " + _
Mid(charList, 35*Rnd+1, 1) + Mid(charList, 35*Rnd+1, 1) + " " + _
Mid(charList, 35*Rnd+1, 1) + Mid(charList, 35*Rnd+1, 1)
End Function
与所有允许的字符0-9和A-Z的字符串。
你得到一个介于1和36之间的随机数字
35*Rnd+1
。这是您在的索引中随机获取其中一个角色。
只要你得到一个字符串还没有在你的视图中,在一个循环中调用函数getRandom()
。
我建议使用randomize来按照帮助中的建议生成随机数字。否则,你会一次又一次地得到相同的随机字符串... –
当然,如果人们在不同的副本或多人同时工作,你可能最终得到重复无论如何,因为他们不会在视图的时候系统检查。 –
sID = Join(Evaluate(|@Password(@Unique)|))
Mid$(sID, 2, 2) & " " & Mid$(sID, 4, 2) & " " & Mid$(sID, 6, 2) & " " & Mid$(sID, 8, 2)
工作原理:
是@unique一串顺序排列的令牌
@Password(anyText)将返回括号内的唯一的32位十六进制字符串
Evaluate将运行@Function公式并返回1个元素的数组。因此,围绕评估的连接会将其转换为字符串标量值。
Mid $函数只是在2个字符偏移处产生2个字符值。
关于你原来你的问题的参数,唯一的问题是,你永远不会看到,因为我们使用的是十六进制字符(0-9,AF)
- 1. 生成随机字符串
- 2. 生成25个伪随机字符串
- 3. 生成一个随机字符串
- 4. 生成奇怪字符的随机字符串生成
- 5. 生成随机的6个字符的字符串
- 6. 基于VB.NET中的两个字符生成随机字符串
- 7. 生成字符串的随机序列
- 8. 生成随机字符串,不SecureRandom的
- 9. 生成独特的随机字符串
- 10. 生成随机字符串的zsh
- 11. 从C#中的字符串列表生成随机字符串?
- 12. 随机字符串生成php
- 13. 生成随机X长度字符串
- 14. Python生成随机128位字符串
- 15. Python新手生成随机字符串
- 16. Perl - PHP:随机字符串生成
- 17. PHP半随机字符串生成器
- 18. Jython随机字符串生成
- 19. 随机字符串生成器(PHP)
- 20. 无法生成随机字符串
- 21. 从字符串生成随机序列
- 22. 生成随机x位字符串
- 23. 使用QuickCheck从字符串池中生成随机字符串
- 24. 生成随机ASCII字符
- 25. Android随机生成字符
- 26. 通过随机字符生成生成随机名字太慢
- 27. 生成指定字符的随机字符串?
- 28. PL/SQL从固定字符集中生成随机字符串
- 29. fgets在字符串中生成随机字符
- 30. 生成基于以前的字符串一个随机字符串
为什么不直接使用到@unique上面获得的F值得到一个随机字符串?这个2x4格式必须有特定的需求,呃? –
@DavidNavarre我做的东西,有与用于测试目的,我没有为每个文档足够独特的智能卡智能卡的事情。因此,这是最接近我可以使测试数据至少看起来像真实数据。 (卡片ID是2×4格式) –