C# VB Web システム開発の部屋

システム開発で役に立つコードを厳選したブログです。

【VB.NET】ランダムな文字列を生成する ーモジュール④ー

 

<プログラムの説明>
ランダムな文字列を生成して値を返します。

 

<引数の説明>
  Length・・・文字列の長さを指定します。

  Digit・・・数字(0~9)で生成する場合はTrue、それ以外はFalseにします。

  Chars・・・使用する文字。指定がないときは英数字で生成します。

  Seed・・・シード値があれば指定します

 

<DebuggerStepThrough>
Public
Function NewChars(ByVal Length As Integer, Optional ByVal Digit As Boolean = False, Optional ByVal Chars As String = "", Optional ByVal Seed As Integer = 0) As String 'forで回す場合や連続で生成する場合はシード値を変更することで '同一文字列の生成を回避できる Dim r As New Random(Seed) '数字のみで生成する If Digit = True Then Dim strMin As String = "" Dim strMax As String = ""
For i As Integer = 0 To Length - 1 If strMin = "" Then
         '1文字目に0は使用しない strMin += "1" Else strMin += "0" End If strMax += "9" Next
NewChars = r.Next(CInt(strMin), CInt(strMax)).ToString Exit Function End If '使用する文字 Dim str As String If Chars <> "" Then str = Chars Else '指定がないときは英数字を使用する str = "0123456789abcdefghijklmnopqrstuvwxyz" End If '文字列を生成する Dim sb As New Text.StringBuilder(Length) For i As Integer = 0 To Length - 1 Dim pos As Integer = r.Next(str.Length) Dim c As Char = str(pos) sb.Append(c) Next Return sb.ToString()
End Function