Do Until ...即使condition = true,循环也不会退出循环

时间:2017-03-04 14:34:40

标签: vb.net windows visual-studio

我正在编写一个需要读取文件的程序,我有一个Microsoft.Office.Interop.Excel.Application xlObj = (Microsoft.Office.Interop.Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application"); while (xlObj.Windows.Count == 0) // This line returns the count as 0 循环,我用它来使用该文件中的信息。我想在文件结束时结束循环,所以循环看起来像这样:

Do ... Until

最初,它只是 Do Until Reader.ReadLine = "</Document>" Or Reader.ReadLine = "</kml>" Or Reader.EndOfStream = True 但是因为当文件结束时没有退出循环(即使文件以Reader.ReadLine = "</kml>"结尾)我写了其他的,但没有一个让它停止!当文件结束时,我总是得到一个</kml>,因为我正在尝试读取一个没有任何其他内容可读的文件。我甚至在循环中放置一个If语句来检查文件是否结束,如果是,它确实NullPointerException,但这也不起作用。

这是我的代码(检查文件是否结束的所有检查都是为了查看它们是否解决了问题,但它们没有解决问题,我打算在解决问题时将其删除):

Exit Do

1 个答案:

答案 0 :(得分:0)

我想知道你的代码中有哪种类型的对象。它是由TextStreamFileSystemObject函数返回的OpenTextFile()吗?

我想可能是每一行都以换行符结尾,所以你应该尝试使用:

Do Until Reader.ReadLine = "</Document>" & vbNewLine

Do Until Reader.ReadLine = "</Document>" & chr(13)

如果有帮助,请告诉我。