如何阅读文本文件的倒数第二行?

时间:2019-05-24 17:55:56

标签: vb.net

我正在尝试使用vb.net应用程序将零件序列号与零件处理数据绑定在一起,零件处理数据之间具有1个零件缓冲区,在最后一次知道该序列号与处理发生之间。基本上,将零件从另一台机器上的传送带上取下,然后使用该零件中的信息填充文本文件。我正在读取文本文件,并将序列号存储在本地文本文件中。然后将零件放在两工位拨盘上,前部什么都没有发生,但是当零件旋转到后部位置时,将对其进行处理并将数据存储在另一个文本文件中。

因为要在处理发生之前将第二部分从传送带上取下并放在表盘上,所以我希望能够读取包含序列号的文本文件中的倒数第二行,以便将其正确连接零件加工数据中的序列号。

下面是我用来从文本文件中读取数据的代码,当从输送机中取出零件时,该文件将被填充,取出序列号并将其保存到单独的文本文件中。我可以很好地读回该文件的最后一行,但是我找不到任何方法可以读回倒数第二行。

    Dim PrevSerialNum As String
    Dim directory As DirectoryInfo = New DirectoryInfo("Z:\ReadyForFFT")
    Dim myFile As FileInfo
    Dim Name As String
    PrevSerialNum = ("")

    Do
        myFile = directory.GetFiles().OrderByDescending(Function(f) f.LastWriteTime).First()
        Name = Convert.ToString(myFile.Name)
        Name = Name.Remove(10, 4)
        If PrevSerialNum <> Name Then
            'MessageBox.Show(Name)
            Dim txt As System.IO.StreamWriter
            txt = My.Computer.FileSystem.OpenTextFileWriter("C:\Users\User\Desktop\Serial Numbers\Serial Numbers.txt", True)
            txt.WriteLine(Name)
            txt.Close()
            PrevSerialNum = Name
        Else
            'Do Nothing
        End If
        System.Threading.Thread.Sleep(1000)
    Loop

谢谢!

1 个答案:

答案 0 :(得分:0)

对于它的价值,这是一种从文本文件中倒数第二行的方法。

Dim lines = System.IO.File.ReadAllLines("filename.txt")
Dim secondToLastLine = If(lines.Count > 1, lines(lines.Count - 2), "N/A")