2011-04-21 225 views

回答

4

我想這就是你要找的。 Generate a Random Letter in ASP

Function RandomNumber(LowNumber, HighNumber) 
    RANDOMIZE 
    RandomNumber = Round((HighNumber - LowNumber + 1) * Rnd + LowNumber) 
End Function 

分配功能到一個變量,並在LowNumber通過(26)和 的HighNumber(97)和轉換值返回到它 表示字符:

RandomLetter = CHR(RandomNumber(97,122)) 

你會希望你的範圍是大寫字母在65和90之間(A和Z)。

2

使用隨機數......這樣的:

Function RandomNumber(LowNumber, HighNumber) 
    RANDOMIZE 
    RandomNumber = Round((HighNumber - LowNumber + 1) * Rnd + LowNumber) 
End Function 

,然後從1-26使用它,使用「如果」或開關,把信。

+0

你忽略了'RandomLetter = CHR(RandomNumber(97,122))'作爲如何使用功能... ;-P的例子 – stealthyninja 2011-04-21 22:04:56

+0

是的,謝謝 - 我已經看了一段asp經典代碼已經有一段時間了,我並沒有真正使用過asp。大聲笑。 – fingerman 2011-04-21 22:12:37

4

這是另一種不用if/switch就可以查看的方法。

String alphabet = "abcdefghijklmnopqrstuvwxyz"; 
Random rand = new Random(); 
char randomCharacter = alphabet[rand.Next(0, 25)]; 
+0

這是我的答案。 +1給你。 – David 2011-04-21 22:02:42

+7

@David:除了_Classic ASP _... -_- – stealthyninja 2011-04-21 22:06:05

1

我來到一個解決方案,你可以輕鬆控制什麼是你的發電機的有效值。

Function CreateRandomString(iSize) 
    Const VALID_TEXT = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890" 
    Dim sNewSearchTag 
    Dim I 

    For I = 0 To iSize 
     Randomize 
     sNewSearchTag = sNewSearchTag & Mid(VALID_TEXT,Round(Rnd * Len(VALID_TEXT)),1) 
    Next 

    CreateRandomString = sNewSearchTag 
End Function 
1

羅傑里奧的回答是不錯,但圓(RND *萊恩(VALID_TEXT))可以爲0,如果你想使用此功能中秋節不能從0修復它的啓動。

0

羅傑Baretto的答案固定傑姆的提示))

Function RandomString(iSize) 
    Const VALID_TEXT = "abcdefghijklmnopqrstuvwxyz1234567890" 
    Dim Length, sNewSearchTag, I 

    Length = Len(VALID_TEXT) 

    For I = 1 To iSize 
     Randomize() 
     sNewSearchTag = sNewSearchTag & Mid(VALID_TEXT, Int(Rnd()*Length + 1), 1) 
    Next 

    RandomString = sNewSearchTag 
End Function