【发布时间】:2014-04-02 01:24:07
【问题描述】:
我有一个超过 100000 行的文本文件。当我尝试使用以下代码浏览文件的所有行时
Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser(txtName)
我数了一下,我只看到我读取了文件的 90000 行。
我应该注意到我确实从 Linux 机器上得到了这个文件。如果这有帮助的话 编辑:更完整的代码
For Each txtName As String In Directory.EnumerateFiles(mydocpath, "*.log")
Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser(txtName)
MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.SetDelimiters(" ")
Dim currentRow As String()
While Not MyReader.EndOfData
currentRow = MyReader.ReadFields()
Console.WriteLine(currentRow.Length)
LineCount +=1
End While
End Using
Next
我应该提到的是总是错过同一行,当我将这些行移动到另一个文件时,它可以很好地读取它们,但是当我在记事本 ++ 中查看所有特殊字符时,我找不到任何不寻常的东西它无法读取的行或它们上面的行
【问题讨论】:
-
如果您的问题是关于读取文本文件的问题,您应该展示用于读取文本文件的代码。
-
我认为您需要对“发生的事情”部分进行一些扩展。
-
文本文件从何而来?如果它来自 Unix 或 Linux 机器,它可能还有其他问题,例如不同的行尾。
-
@Jon Limjap 我所知道的是它是从一台 unix 机器上转移的,可能是 unbuntu 而不使用 samba 共享。我可以毫无问题地打开和读取文件。我可以将我知道我没有读取的行复制到其他文件并成功读取它们
-
我怀疑 Notepad++ 可能没有像 .net 那样解析换行符。对线条进行目视检查,看看其中一些是否不符合您的预期。
标签: vb.net text-parsing