2014-04-02 72 views
0

我有一個長度超過100000行的文本文件。當我嘗試使用下面的代碼無法解析用Linux生成的.Txt文件的每一行

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 

我應該指出,總是忽略了同一行,當我移動這些線到另一個文件時,它可以讀取它們就好了,但是當我觀賞所有特殊在記事本++中的字符我找不到任何不尋常的東西,它無法讀取的行或上面的行

+0

如果您的問題是關於讀取文本文件的問題,您應該顯示用於讀取文本文件的代碼。 – tinstaafl

+0

我認爲你需要在「發生的事情」部分擴大一點。 –

+0

文本文件來自哪裏?如果它來自Unix或Linux機器,則可能有其他問題,例如不同的行尾。 –

回答

0

不知道你在問什麼,但似乎你想要得到文件中的行數if我是正確的......

Public Class Form1 

Private strFile As String = "LOCATION OF FILE" 


Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click 
    Dim wFile As StreamReader 
    wFile = New StreamReader(strFile, FileMode.Open) 
    Dim count As Integer = 0 'Counter for rows that have something in it 
    Dim totalLines As Integer = 0 'Counter for the total lines in the file 
    Dim blankLines As Integer = 0 'Counter for the empty lines (optional) 

    While (wFile.Peek <> -1) 
     If wFile.ReadLine() = String.Empty Then 
      blankLines += 1 ' Add to blank line count 
     Else 
      count += 1 'Add to actual count data from a line 
     End If 
     totalLines += 1 'The actual total of lines 
    End While 

    wFile.Close() 
End Sub 
End Class 

下面是一個文本文件,我看我的結果的截圖...

Results from my run...

在另一方面,當該文件在記事本中加載++我得到同樣的結果...

+0

是的,這個數字是關於讓行數匹配一個他們不怎麼樣,謝謝你提交這個解決方案,雖然 – SZman

+0

我發現你的問題,提供的解決方案工作得很好......我實際上正在研究一個你發佈的修復程序,但你想要一個行數,我把它給你... – Codexer

+0

這工作完美,但我仍然不知道如何我的代碼正在跳過線 – SZman