0

これまでのところ、Virtual Basic 2010 でランダマイザーを作成しました。

  1. ユーザーが form2 に代入した人々の名前を配列に取ります (スペースで分割)。
  2. 配列をランダム化します
  3. 代入された名前ごとに、その後ろに連続した数字とピリオドを付けて配列を表示します。

ソースコードは次のとおりです。

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim names() As String
    Dim i As Integer
    Dim j As Integer
    Dim tmp As String
    Dim txt As String

    ' Put the names in an array. SaveTitle is all the text saved in Form2
    names = Split(My.Settings.SaveTitle, " ")

    ' Randomize the array.
    Randomize()
    For i = LBound(names) To UBound(names) - 1
        ' Pick a random entry.
        j = Int((UBound(names) - i + 1) * Rnd() + i)

        ' Swap the names.
        tmp = names(i)
        names(i) = names(j)
        names(j) = tmp
    Next i

    ' Display the results.
    For i = LBound(names) To UBound(names)
        txt = txt & vbCrLf & i + 1 & ". " & names(i)
    Next i
    txt = Mid$(txt, Len(vbCrLf) + 1)

    RichTextBox1.Text = txt
End Sub

最後のビットに注意してください。変数 txt を取得して分割したいと思います。次に、最初の 10 個の名前を取得して RichTextBox1 に表示し、次の 10 個の名前を取得して RichTextBox2 に表示し、最後の 10 個の名前を RichTextBox3 に表示します。

これどうやってするの?

4

1 に答える 1

1

この方法を試してください。

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

        Dim lstNames() As String
        Dim txt1, txt2, txt3 As String

        ' Put the names in an array. SaveTitle is all the text saved in Form2
        lstNames = Split(My.Settings.SaveTitle, " ")

        ' Randomize the array.
        Randomize()

        ' try this 
        For n As Integer = 0 To lstNames.Count - 1
            lstNames(n) = String.Format("{0}{1} ", lstNames(n), Rnd() + n)
        Next

        For n As Integer = 0 To lstNames.Count - 1
            If n < 10 Then
                txt1 += lstNames(n)
            End If

            If n > 9 And n < 20 Then
                txt2 += lstNames(n)
            End If

            If n > 19 And n < 30 Then
                txt2 += lstNames(n)
            End If

        Next
        RichTextBox1.Text = txt1
        RichTextBox2.Text = txt2
        RichTextBox3.Text = txt3

    End Sub
于 2012-04-24T19:36:28.980 に答える