选择字符串行直到指定的字符串行vb.net

时间:2017-10-04 15:12:49

标签: vb.net

我需要从选定的行索引读取直到选定的行行。但它总是从第一行开始,而不是从选定的行开始。所选行是从所选数据网格行定义的。感谢任何帮助

key: function (req, file, cb) {
      cb(null, username + "/profile.jpg")
}

1 个答案:

答案 0 :(得分:2)

如果你实际上并不需要数组中文件的内容,那么你可以使用File.ReadLines方法和一些LINQ来获得你想要的行:

TextBox1.Text = String.Join(vbCrLf, File.ReadLines(sourceFile).Skip(firstLine - 1).Take(lastLine - firstLine + 1))

其中firstLine是您想要的第一行的编号,将文件中的第一行计为1,sourceFile是您想要行的文件的完整路径。

使用File.ReadLines的优势在于它只会读取所需的数量,所以如果您只需要大文件中的几行,那么就不会浪费存储文件其余部分的内存。

如果您不想使用上述方法,可以执行以下操作:

Sub ShowLines3(sourceFile As String, firstLine As Long, lastLine As Long)
    Dim sb As New StringBuilder
    Using sr As New StreamReader(sourceFile)
        If Not sr.EndOfStream Then
            For i = 1 To lastLine
                If i >= firstLine Then
                    sb.AppendLine(sr.ReadLine())
                Else
                    sr.ReadLine()
                End If

                If sr.EndOfStream Then
                    Exit For
                End If

            Next

        End If

    End Using

    TextBox1.Text = sb.ToString()

End Sub

Using构造在使用StreamReader后负责清理。

检查sr.EndOfStream可以避免在已经到达目的地时尝试从文件读取任何不必要的尝试(例如,您可以将lastLine设置为Long.MaxValue以读取到文件的末尾)。

使用StringBuilder是从多个部分构建大字符串的有效方法