我无法弄清楚这一点。 我的项目是获取一个文本文件,将其读入我的程序,更改它的值,然后将其重写回该文本文件。 程序将在第一次运行,但是第二次运行它时,我用来从文件中读取的for-next循环表示第二行没有文本。代码在第一个循环后停止并启动应用程序。任何人都知道出了什么问题?
这是我使用的StreamReader循环:
Dim inventoryReader As New StreamReader("Inventory.txt")
Dim line As String
Dim inventorycounter As Decimal = 0
Do Until inventoryReader.EndOfStream
line = inventoryReader.ReadLine()
inventoryinfo = line.Split(ControlChars.Tab)
inventory(inventorycounter, 0) = inventoryinfo(0)
inventory(inventorycounter, 1) = inventoryinfo(1)
inventorycounter += 1
Loop
inventoryreader.close()
这是我使用的StreamWriter循环:
Dim output As New StreamWriter("Inventory.txt")
For outputcounter As Integer = 0 To 16
output.WriteLine(inventory(outputcounter, 0) & ControlChars.Tab & inventory(outputcounter, 1) & ControlChars.Cr)
Next
output.WriteLine(inventory(17, 0) & ControlChars.Tab & inventory(17, 1))
output.Close()
我认为问题是该程序第二次没有读取ControlChars.Cr,但我尝试过CrLf,Lf和Nextline,但没有任何工作。
感谢所有帮助人员!
答案 0 :(得分:1)
这不正确,你的程序将Cr + Cr + Lf写入文本文件。令人困惑的StreamReader,它会将第一个Cr视为行终止符。所以当你索引 inventoryinfo
时,你会读到一个空行,kaboom从代码中删除 ControlChars.Cr 。 StreamWriter.WriteLine()不需要任何帮助,它已经编写了正确的行终止符。