Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2012 在我修改文本文件后,StreamReader没有读取文本文件的第二行_Visual Studio 2012 - Fatal编程技术网

Visual studio 2012 在我修改文本文件后,StreamReader没有读取文本文件的第二行

Visual studio 2012 在我修改文本文件后,StreamReader没有读取文本文件的第二行,visual-studio-2012,Visual Studio 2012,我想不出来。 我的项目是获取一个文本文件,将其读入我的程序,更改其值,然后将其重写回该文本文件。 程序第一次可以运行,但第二次运行时,我用来读取文件的下一个循环表示第二行没有文本。代码在第一个循环后停止并启动应用程序。有人知道出了什么问题吗 以下是我使用的StreamReader循环: Dim inventoryReader As New StreamReader("Inventory.txt") Dim line As String Dim inventorycount

我想不出来。 我的项目是获取一个文本文件,将其读入我的程序,更改其值,然后将其重写回该文本文件。 程序第一次可以运行,但第二次运行时,我用来读取文件的下一个循环表示第二行没有文本。代码在第一个循环后停止并启动应用程序。有人知道出了什么问题吗

以下是我使用的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,但没有任何效果


谢谢大家的帮助

这不正确,您的程序将Cr+Cr+Lf写入文本文件。使StreamReader困惑的是,它将第一个Cr视为行终止符。所以当你索引inventoryinfo时,你会看到一个空行,kaboom


从代码中删除ControlChars.Cr。StreamWriter.WriteLine()不需要任何帮助,它已经写入了正确的行终止符。

太棒了!这就解决了!非常感谢你!