0

私はここに来て、文字列ジェネレーターにTextBox2で入力された文字列の量を生成させる方法について助けを求めてきました。たとえば、ボックスに10と入力すると、RichTextBox1に10個の文字列が生成され、1と入力すると、1などが生成されます。これが私のコードです。

 Public Function RandomString(ByVal length As Integer) As String
    Dim strb As New System.Text.StringBuilder
    Dim chars() As String = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"} 

    Dim UpperBound As Integer = UBound(chars)

    For x As Integer = 1 To length
        strb.Append(chars(Int(Rnd() * UpperBound)))
    Next

    Return strb.ToString

End Function

Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click
    Try
        System.Diagnostics.Process.Start("Link Removed...")
    Catch
    End Try
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim rndstring As String
    rndstring = RandomString(24)
    RichTextBox1.Text = rndstring
End Sub
4

2 に答える 2

0

Button1のクリックハンドラーを変更して、で指定された回数を繰り返す必要がありますTextBox2。ただし、ユーザーがテキストボックスにも有効な数値を指定したことを確認する必要があります。このようなもの:

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim repeatCnt As Integer

    'Check for valid numeric entry
    If Integer.TryParse(TextBox2.Text, repeatCnt) Then
        For repeatIdx As Integer = 1 To repeatCnt
            Dim rndstring As String
            'Generate random string...
            rndstring = RandomString(24)
            '...and append to text box with a line break
            TextBox1.Text &= rndstring & vbCrLf
        Next
    Else
        MessageBox.Show("Please enter a valid integer number in the text box")
    End If
End Sub

追加の提案は、ユーザーが繰り返し値を指定するテキストボックスをNumericUpDownコントロールに変更することです。

また、繰り返し値が大きい場合は、文字列が不変Textであるため、テキストボックスプロパティへの追加は効率的ではないため、おそらく別の値が適切であることに注意してください。StringBuilder

于 2013-02-02T01:05:47.390 に答える
0

この方法を使用できます(基本的には追加のForループです)。

Private Shared rnd As New Random()
Private Shared chars() As String = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}

Public Shared Function RandomStrings(ByVal length As Int32, count As Int32) As IEnumerable(Of String)
    Dim builder = New System.Text.StringBuilder()
    Dim strings = New List(Of String)
    For c As Int32 = 1 To count
        For l As Int32 = 1 To length
            builder.Append(chars(rnd.Next(0, chars.Length)))
        Next
        strings.Add(builder.ToString())
        builder.Clear()
    Next
    Return strings
End Function

長さ10のランダムな文字列を100個作成します。

Dim allStrings = RandomStrings(10, 100)
于 2013-02-02T01:05:55.607 に答える