我需要从选定的行索引读取直到选定的行行。但它总是从第一行开始,而不是从选定的行开始。所选行是从所选数据网格行定义的。感谢任何帮助
key: function (req, file, cb) {
cb(null, username + "/profile.jpg")
}
答案 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
是从多个部分构建大字符串的有效方法