我有大约20个文件,每个文件都有一个简短的描述,从第7行开始,然后转到文件的第3行到最后一行。 例如,一个文件的描述从第7行开始,到第10行结束,但该文件总共有13行。
如何导入JUST描述,例如第7-10行? 这是我到目前为止的示例代码。
Public Class Form1
Dim MyDir As String = "..\GoodFils\"
Dim MyFiles() As String = IO.Directory.GetFiles(MyDir)
Dim Count As Integer = 0
Public Function ReadLine(lineNumber As Integer, lines As List(Of String)) As String
Return lines(lineNumber - 1)
End Function
Private Sub btnDo_Click(sender As Object, e As EventArgs) Handles btnDo.Click
Dim reader As New System.IO.StreamReader(MyDir & "gucci.hcs")
Dim allLines As List(Of String) = New List(Of String)
Dim i As Integer
Dim strTemp As String
Do Until reader.EndOfStream = True
allLines.Add(reader.ReadLine())
Loop
lblName.Text = ReadLine(2, allLines)
lblPrice.Text = ReadLine(5, allLines)
lblDesc.Text = EOF(1) - 3
reader.Close()
FileOpen(1, MyDir & "gucci.hcs", OpenMode.Input) 'May be able to use MyDir & lblName & ".hcs"
For i = 7 To reader.EndOfStream
Input(1, strTemp)
Next
lblDesc.Text += i
FileClose(1)
End Sub
End Class
答案 0 :(得分:1)
您可以使用IO.File.ReadAllLines将每个文件的内容加载到数组中,然后您可以使用LINQ跳过跳转到第7行,然后转到第3行到最后一行。
这是一个简单的例子:
'Create a collection to store all of the file's descriptions
Dim descriptions As New List(Of String)
'Placeholder variable for the upcoming iteration
Dim lines() As String
'Iterate through each file
For Each file As IO.FileInfo In New IO.DirectoryInfo("GoodFils").GetFiles("*.txt")
'Read the file
lines = IO.File.ReadAllLines(file.FullName)
'Get only lines 7 to n-3
descriptions.Add(String.Join(Environment.NewLine, lines.Skip(6).Take(lines.Count - 10).ToArray()))
Next
小提琴:Live Demo