私はこのようなvb.netでランダムなコードを生成しようとしています
Dim r As New Random
Response.Write(r.Next())
しかし、私は6桁のコードを生成したいので、このような英数字A12RV1
で、すべてのコードはこのようにする必要があります。
vb.netランダムクラスを試しましたが、思い通りにできません。コードを実行するたびに英数字コードを取得したい。どうすればvb.netでこれを達成できますか?
私はこのようなvb.netでランダムなコードを生成しようとしています
Dim r As New Random
Response.Write(r.Next())
しかし、私は6桁のコードを生成したいので、このような英数字A12RV1
で、すべてのコードはこのようにする必要があります。
vb.netランダムクラスを試しましたが、思い通りにできません。コードを実行するたびに英数字コードを取得したい。どうすればvb.netでこれを達成できますか?
次のようなものを試してください。
Public Function GetRandomString(ByVal iLength As Integer) As String
Dim sResult As String = ""
Dim rdm As New Random()
For i As Integer = 1 To iLength
sResult &= ChrW(rdm.Next(32, 126))
Next
Return sResult
End Function
または、有効な文字を定義する一般的なランダム文字列を実行できます。
Public Function GenerateRandomString(ByRef iLength As Integer) As String
Dim rdm As New Random()
Dim allowChrs() As Char = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLOMNOPQRSTUVWXYZ0123456789".ToCharArray()
Dim sResult As String = ""
For i As Integer = 0 To iLength - 1
sResult += allowChrs(rdm.Next(0, allowChrs.Length))
Next
Return sResult
End Function
これはあなたの要件に合うと思います、
Private sub GenerateString()
Dim xCharArray() As Char = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray
Dim xNoArray() As Char = "0123456789".ToCharArray
Dim xGenerator As System.Random = New System.Random()
Dim xStr As String = String.Empty
While xStr.Length < 6
If xGenerator.Next(0, 2) = 0 Then
xStr &= xCharArray(xGenerator.Next(0, xCharArray.Length))
Else
xStr &= xNoArray(xGenerator.Next(0, xNoArray.Length))
End If
End While
MsgBox(xStr)
End Sub
ノート: Tested With IDE
編集: Modified according to SYSDRAGON's Comment