0

我目前正忙于在 VB.NET 中编写一个刽子手游戏。作为一个单词表,我有一个包含 1520 个单词的文本文件,每个单词由一个新行分隔...

我能想到的最好的随机词是使用 Randomize() 函数。然后从随机生成的 # 行中获取单词。

刚才才发现,这个方法:

Using parser As New Microsoft.VisualBasic.FileIO.TextFieldParser_
("filepath")
        parser.TextFieldType = FileIO.FieldType.Delimited

不允许我使用新行作为分隔符...

考虑到所有单词都有不同的长度/宽度,我也不能使用这个:

parser.TextFieldType = FileIO.FieldType.FixedWidth

有没有更好的方法让我从该随机行中提取单词?

如果不是,我应该使用什么分隔符?如何在不使用 Office 的情况下快速将分隔线更改为新的分隔符?

另外,如何使用 textfieldparser 从资源中获取文件?当我尝试使用 my.resources.filename 而不是"filepath"时,由于“路径中的字符无效”,它给了我一个 ArgumentException。

4

2 回答 2

1

更简单的方法是将文本文件加载到字符串集合中,然后获取集合的随机索引

Dim list As New List(Of String)
Dim Reader As New StreamReader("C:\WordList.txt")
Dim line As String

Do
    line = Reader.ReadLine()
    list.Add(line)
Loop Until line Is Nothing

Reader.Close()
于 2012-05-14T02:35:23.393 回答
0

使用File.ReadAllLines将所有单词读入字符串数组。一行代码:

Dim words() As String = File.ReadAllLines(path)

要选择一个随机词,请使用Rnd

Randomize()
Dim randomWord As String = words(CInt(Math.Floor(Rnd * words.Length)))
于 2012-05-14T05:53:19.937 回答