从文件末尾到文件开头搜索文本文件-VB.NET

从文件末尾到文件开头搜索文本文件-VB.NET,vb.net,loops,Vb.net,Loops,我目前有一个文本文件,其中包含固定字段。有x个标题行和x个详图行。我需要从详细信息行中获取一条信息,以便为我的程序创建记录。如果有一种方法可以从文件的结尾循环到文件的开头,我将能够完成我的任务 我有下面的代码,从文件的开始到结束 Using rdr As New StreamReader(_mtLocation) Do Until rdr.EndOfStream '// Do code here Loop End Using

我目前有一个文本文件,其中包含固定字段。有x个标题行和x个详图行。我需要从详细信息行中获取一条信息,以便为我的程序创建记录。如果有一种方法可以从文件的结尾循环到文件的开头,我将能够完成我的任务

我有下面的代码,从文件的开始到结束

    Using rdr As New StreamReader(_mtLocation)
        Do Until rdr.EndOfStream
           '// Do code here

        Loop
    End Using
从文件的结尾到开头有什么方法吗


如果您需要任何其他信息,请让我知道,我将用其他信息更新问题。非常感谢您的帮助。

您可以使用
file.ReadAllLines
方法将文件读入
字符串数组。然后,您将在该数组中反向迭代,这将为您提供从下到上的每一行。对于每一行,您都会向后迭代该行。

您可以通过更改position属性在流的不同位置读取数据。问题的发生取决于文件的编码

A有一个简单的文件(不是unicode),其中写入了数字1到9

    Using s = System.IO.File.OpenRead("test.txt")
        For i As Integer = 8 To 0 Step -1
            s.Position = i
            Console.WriteLine(Chr(s.ReadByte()))
        Next
    End Using
这里有一个很好的例子,但是用C#。
stackoverflow.com/a/452945/130611这是另一个解决方案:

Dim TxtLines As New List(Of String)
Using rdr As New StreamReader(_mtLocation)
    Do Until rdr.EndOfStream
        TxtLines.Add(Reader.ReadLine.ToString())
    Loop
End Using

Dim x As Integer
For x = TxtLines.Count To 0 Step -1
    'Do your code here...
Next
要获取当前行的文本,只需在For循环中执行以下操作:

TxtLines(x).ToString()

你的意思是你知道字段的大小吗?是的,公司给了我们每个字段的固定长度。将所有行读入一个数组,然后在数组中向后循环。你可能可以直接搜索到适当的位置,然后。你能举一个格式的例子吗?@TheBlueDog我正考虑这样做,但其中一些文本文件可能有成百上千行。我觉得这会对性能产生影响。