我目前正在忙着用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。
答案 0 :(得分: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()
答案 1 :(得分:0)
使用File.ReadAllLines将所有单词读入字符串数组。一行代码:
Dim words() As String = File.ReadAllLines(path)
要选择随机字词,请使用Rnd
Randomize()
Dim randomWord As String = words(CInt(Math.Floor(Rnd * words.Length)))