0

要么我错过了一些非常明显的东西,要么关于 vb 的东西真的搞砸了。我正在尝试从文件中读取并将行添加到数组列表中......非常简单如果我以这种方式将字符串添加到数组列表中

selectOptions.Add("Standard")
selectOptions.Add("Priority")
selectOptions.Add("3-Day")
selectOptions.Add("Overnight")

我没有问题

但是当我这样做时,它似乎最终是空的,这对我来说毫无意义。

Dim reader As StreamReader = My.Computer.FileSystem.OpenTextFileReader(path)
    Dim line As String
    Do
        line = reader.ReadLine
        selectOptions.Add(line)
    Loop Until line Is Nothing
    reader.Close()

Messagebox.show 行一整天,所以我知道它正在读取文件并且文件不是空的,并且我检查了以字符串形式返回的行的类型。这对我来说毫无意义。

4

1 回答 1

2

reader.EndOfStream在 While 循环中检查可能会更好:

    Dim reader As New StreamReader(path)
    Dim line As String
    While Not reader.EndOfStream
        line = reader.ReadLine
        selectOptions.Add(line)
    End While
    reader.Close()

New ArrayList如果 selectOptions 未声明为 a ,如果您正确打开了所有选项,您也可以获得异常。

要记住的另一件事是,如果您的代码在表单的加载处理程序中,它不会抛出异常,它只会跳出处理程序例程并加载表单。这使得很难找到诸如错误文件名、错误声明对象等之类的东西。

我要做的一件事是将可疑代码放入按钮的 Click 处理程序中,然后查看它在那里抛出了哪些异常。

当然,如果您使用 File.ReadAllLines 方法并将其直接添加到 ArrayList 中,这一切都没有实际意义:

selectOptions.AddRange(File.ReadAllLines(path))
于 2013-10-09T04:10:38.187 回答