Visual Basic随机名生成器功能

时间:2014-08-22 19:29:12

标签: arrays vb.net function random visual-studio-2013

好的,使用Visual Basic(在Visual Studio Express 2013中,如果这有所不同)。我正在尝试创建一个函数,该函数从文本文件中获取名字列表,并将每一行插入到数组中的索引中。我得到的是特定索引,而不是分配给该索引的字符串。

    Private Sub btnAutofill_Click(sender As Object, e As EventArgs) Handles btnAutofill.Click

        Dim ranFname As String = RandomFname(ranFname)
        Dim ranLname As String = RandomLname(ranLname)

        txtCustFname.Text = ranFname
        txtCustLname.Text = ranLname

    End Sub

    Private Function RandomFname(ByRef ranFname As String) As String

        Dim userPath As String = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)
        Dim fname() As String
        Dim rand As New Random()

        fname = IO.File.ReadAllLines(userPath & "\OneDrive\Coding\Visual Studio\firstNames.txt")
        ranFname = rand.Next(0, fname.Length - 1)
        Return ranFname

    End Function

    Private Function RandomLname(ByRef ranLname As String) As String

        Dim userPath As String = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)
        Dim lname() As String
        Dim rand As New Random()
        lname = IO.File.ReadAllLines(userPath & "\OneDrive\Coding\Visual Studio\lastNames.txt")
        ranLname = rand.Next(0, lname.Length - 1)
        Return ranLname

    End Function

现在,当我点击自动填充按钮时,而不是我的文本框:

名字:玛丽姓氏:琼斯

我明白了:

名字: 68 姓氏: 68

我也不知道为什么它每次都是相同的数字,它应该是随机的。

很明显,我走错了路。有人介意帮助我吗?

1 个答案:

答案 0 :(得分:0)

ReadAllLines()返回一个数组,你只需要一个来自这个数组的随机位置:

Private Function RandomFname(ByRef ranFname As String) As String

    Dim userPath As String = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)
    Dim fname() As String
    Dim rand As New Random()

    fname = IO.File.ReadAllLines(userPath & "\OneDrive\Coding\Visual Studio\firstNames.txt")
    Return fname(rand.Next(0, fname.Length - 1))

End Function

我也不知道为什么它每次都是相同的数字,它应该是随机的。

如果您希望每次都使用不同的数字,请在两种方法使用时实例化一个Random,或者使用允许您提供自己种子的重载来实例化每个Random

Dim rand As New Random(DateTime.Now.Millisecond)
相关问题