读取文件中未知数的行数



我有大约20个文件,每个文件的简短说明从第7行开始,转到了文件的最后一行。例如,一个文件的描述始于第7行,并在第10行结束,但是该文件共有13行。

如何仅导入描述,例如第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

您可以使用io.file.file.readalllines将每个单独文件的内容加载到数组中,然后您可以使用linq跳过以跳到第7行,然后拿到第三名到最后一行。

这是一个快速示例:

'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

小提琴:实时演示

最新更新