我对visual basic(和一般的编码)很陌生,所以如果我犯了任何非常简单的错误,请告诉我。
现在,我的 vb.net 代码遇到了一个非常奇怪的问题。文件流能够正确打开文件并从中读取 - 但奇怪的是,虽然代码能够从文件开头读取一堆行,但当我在记事本中手动打开文件时,我不是。这是代码:
Dim fs, f, s 'filesystemobject, file, stream.
fs = CreateObject("Scripting.FileSystemObject")
f = fs.GetFile(CurrDataPath) ' This change made to ensure the correct file is opened
s = f.OpenAsTextStream(1, 0) ' 1 = ForReading, 0 = as ASCII (which i think is right?)
Dim param(14) As String
Dim line As String
line = s.ReadLine()
While i <= 14
i += 1
MessageBox.Show(line)
line = s.ReadLine()
End While
(我读过数组是个坏主意,但它们很方便并且没有给我带来任何问题,所以我一直在使用它们。)
奇怪的是,当这段代码运行时,它会(在消息框)显示我想看到的信息 - 这一点也不差。我想要的信息如下所示:
BEGINPARAM
parameter1, 0
parameter2, 7.5
ENDPARAM
编辑:使用后Path.GetFullPath(DFile)
,我发现在不同的目录中有两个同名的文件DFile
。我在记事本中打开的文件保存在我希望保存它的目录中,而代码正在读取的文件保存在 VB 项目的文件夹中。
一旦我将代码更改为依赖CurrDataPath
包含预期路径的代码,从文件中读取的代码与我在记事本中所做的完全相同。
我在记事本中确实有自动换行,所以我知道这不是问题,但是,我会考虑使用记事本++。
名为 DFile 的文件是在一个 c++ 程序中创建的,我将深入研究该程序以找出为什么将文件的一部分写入与其余部分不同的文件夹。
显然我错过了一些重要的东西,如果有人可以提供帮助,那就太好了。
*注意:这是一个 vb6 迁移项目,所以如果有人问我可以提供旧代码。