HI有一个循环文本文件并读取行的程序。
Using r As StreamReader = New StreamReader("C:\test.txt")
Dim lineCount = File.ReadAllLines("C:\test.txt").Length
MsgBox(lineCount)
For x = 1 to linecount
line = r.ReadLine
msgbox (line)
next
如何读取文本文件每行最左边的15个字符,忽略每行中的其他字符。最后,如果前15个字符中有空格,我想删除它们。
答案 0 :(得分:0)
调用ReadAllLines以发现驱动for..loop的行数是错误的并浪费资源(实质上,您正在读取所有文件内容两次)。特别要考虑StreamReader有一个方法告诉您是否已到达文件末尾
所以一切都可以改成更简单的
Dim clippedLines = new List(Of String)()
Dim line As String
Using r As StreamReader = New StreamReader("C:\test.txt")
While r.Peek() >= 0
line = r.ReadLine
Dim temp = if(line.Length > 15, line.Substring(0,15), line)
clippedLines.Add(temp.Trim().Replace(" "c, ""))
End While
End Using
这将删除行中取得前15个字符后的所有空格(因此结果可能是一个短于15个字符的字符串)如果你想在空格删除操作后得到一个15字符的行,那么
While r.Peek() >= 0
line = r.ReadLine.Trim().Replace(" "c, "")
Dim temp = if(line.Length > 15, line.Substring(0,15), line)
clippedLines.Add(temp)
End While