Vb.net Textfieldparser分隔符

Vb.net Textfieldparser分隔符,vb.net,file-io,text-files,delimiter,Vb.net,File Io,Text Files,Delimiter,我现在正忙着用VB.NET编写一个刽子手游戏。 作为一个单词列表,我有一个包含1520个单词的文本文件,每个单词用一行新行分隔 我能想到的获得一个随机单词的最好方法是使用随机函数。 然后从随机生成的行中获取单词 刚刚才发现,这个方法: Using parser As New Microsoft.VisualBasic.FileIO.TextFieldParser_ ("filepath") parser.TextFieldType = FileIO.FieldType.Delim

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

我能想到的获得一个随机单词的最好方法是使用随机函数。 然后从随机生成的行中获取单词

刚刚才发现,这个方法:

Using parser As New Microsoft.VisualBasic.FileIO.TextFieldParser_
("filepath")
        parser.TextFieldType = FileIO.FieldType.Delimited
不允许我使用新行作为分隔符

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

parser.TextFieldType = FileIO.FieldType.FixedWidth
有没有更好的方法让我从那行随机抽取这个词

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

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

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

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()

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

Dim words() As String = File.ReadAllLines(path)
要选择随机单词,请使用


我想用这个代码,我可以用随机数作为列表变量的索引?是的,并且确保列表的索引应该从1开始,而不是0。你是指随机索引还是实际的索引列表?因为我可以将随机代码更改为0-1519之间:p无论你从随机代码中得到什么,然后加上1,使其介于1到1520之间,我想你可能弄错了:只是让它在使用word=list1520时将单词打印到即时屏幕上,这不起作用:P意味着随机索引应该在0到1519之间,而不是1到1520之间:或者我太累了,无法完全理解你的意思:P让我休息一下,现在快5点了:TextFieldParser用于解析类似CSV的文件。它遵循rfc4180指南。虽然您可以更改分隔符,但它仍然依赖于crlf行分隔符
Randomize()
Dim randomWord As String = words(CInt(Math.Floor(Rnd * words.Length)))