5

私はこのようなvb.netでランダムなコードを生成しようとしています

  Dim r As New Random
        Response.Write(r.Next())

しかし、私は6桁のコードを生成したいので、このような英数字A12RV1で、すべてのコードはこのようにする必要があります。

vb.netランダムクラスを試しましたが、思い通りにできません。コードを実行するたびに英数字コードを取得したい。どうすればvb.netでこれを達成できますか?

4

2 に答える 2

8

次のようなものを試してください。

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
于 2013-03-08T07:30:00.507 に答える
1

これはあなたの要件に合うと思います、

 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

于 2013-03-08T08:01:56.700 に答える