Saya menemukan fungsi VBscript berikut untuk menghasilkan kode acak menggunakan Huruf Besar & Karakter huruf kecil. Saya ingin memperluasnya untuk memasukkan angka - saya mencoba dengan menambahkan beberapa baris tambahan (max3 dan min3) , tetapi saya tidak yakin bagaimana mengubah Array untuk mengizinkan variabel baru.

Function GenerateRandomString(StrLen,upper,lower,numeric)
    Dim charCase
    ' ASCII: Lowercase Alpha Characters
    max=122
    min=97
    ' ASCII: Capital Alpha Characters
    max2=90
    min2=65

    //  THIS BELOW IS WHAT I ADDED:
    ' ASCII: numeric Characters
    max3=57
    min3=49
    // END ADD
    

    For i=0 To (StrLen-1)
        Randomize
        charCase = Array((max-min+1)*Rnd+min,(max2-min2+1)*Rnd+min2)   <!-- Not sure how to change this?
        myStr = myStr & Chr(int(charCase(int(Rnd*2))))
    Next
   
    GenerateRandomString = myStr
End Function   
1
kneidels 25 Mei 2021, 13:53

1 menjawab

Jawaban Terbaik

Kode membuat array dengan 2 nilai lalu memilih salah satunya. Solusi paling sederhana adalah menambahkan nilai ketiga ke array:

Randomize
For i=0 To (StrLen-1)
    charCase = Array((max - min + 1) * Rnd + min, _
                     (max2 - min2 + 1) * Rnd + min2, _
                     (max3 - min3 + 1) * Rnd + min3)
    myStr = myStr & Chr(int(charCase(int(Rnd * 3))))
Next

Pilihan lain adalah membuat string dengan nilai yang Anda inginkan dan menggunakannya:

letters ="0123456789ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz"
For i=0 To (StrLen-1)
    ' Pick a random letter from the string and add to the result
    myStr = myStr & Mid(letters, int(Rnd * Len(letters)), 1)
Next
1
Johnny Mopp 25 Mei 2021, 11:17