Textfieldparser分隔符

时间:2012-05-14 02:26:26

标签: vb.net file-io text-files delimiter

我目前正在忙着用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。

2 个答案:

答案 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)))