如何读取文本文件每行的前x个字符

时间:2015-11-05 19:41:41

标签: vb.net

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个字符中有空格,我想删除它们。

1 个答案:

答案 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