Reputation: 1
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
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