b0x
b0x

Reputation: 1

How to Generate random (a-z) len=4 and (0-9) len=2 in Vb.net

I have a problem to generate any char with VB.Net, I have the code as PHP version. How do I create it in VB.Net?

This my PHP code:

function randomcodeAlpha($len="4") {
    $code = NULL;
    for($i=0;$i<$len;$i++) {
        $char = chr(rand(48,122));
        while(!ereg("[A-Z]", $char)) {
            if($char == $lchar) { continue; }
            $char = chr(rand(48,90));
        }
        $pass .= $char;
        $lchar = $char;
    }
    return $pass;
} 

function randomcodeNumeric($len="2") {
    $code = NULL;
    for($i=0;$i<$len;$i++) {
        $char = chr(rand(48,122));
        while(!ereg("[0-9]", $char)) {
            if($char == $lchar) { continue; }
            $char = chr(rand(48,90));
        }
        $pass .= $char;
        $lchar = $char;
    }
    return $pass;
}

Upvotes: 0

Views: 159

Answers (1)

Magnus
Magnus

Reputation: 46929

This should do it:

Private Sub Main()
    Dim str As string = RandomString(4, _chars)
    Dim num As string = RandomString(2, _nums)
End Sub

Private Const _chars As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Private Const _nums As String = "0123456789"
private shared readonly _randLock = new Object()
private shared readonly _rnd = New Random()

Private Shared Function RandomString(size As Integer, chars As String) As String
    Dim arr = New Char(size - 1) {}

    For i As Integer = 0 To size - 1
        SyncLock _randLock
           arr(i) = chars(_rnd.Next(chars.Length))
        End SyncLock 
    Next

    Return New String(arr)
End Function

Upvotes: 2

Related Questions