如何生成的這個模式使用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格式) –