我正在尝试使用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
谢谢!
答案 0 :(得分:0)
对于它的价值,这是一种从文本文件中倒数第二行的方法。
Dim lines = System.IO.File.ReadAllLines("filename.txt")
Dim secondToLastLine = If(lines.Count > 1, lines(lines.Count - 2), "N/A")