我想知道我的文件中有多少行。我怎樣才能以簡單的方式做到這一點(我的意思是,不要遍歷整個文件並計算每一行)?有沒有一個命令?在C中計數文件行#
回答
好:
int lines = File.ReadAllLines(path).Length;
是相當簡單的,但對於龐大的文本文件不是很有效。我可能會在大多數情況下使用TextReader
,以避免過多的緩衝:
int lines = 0;
using (TextReader reader = File.OpenText(path)) {
while (reader.ReadLine() != null) { lines++; }
}
坦克!!!! 順便說一句,我用這個爲65500行的文件,所以我認爲它甚至錯誤的文件... – aharon 2010-01-20 16:42:36
任何「功能」你打電話是要基本上做同樣的事情 - 通過走行線和計數新行的數量字符。
如果你想讓自己陷入讓更多的東西看起來更「脆」的情況,那麼用一個正則表達式來計算新行字符的數量就可以實現。
一旦你已經讀完整個文件 - 如果它很大,不是真的可行。或者你每行都這樣做......哦,等等......-) – 2010-01-20 16:29:33
我們應該告訴OP,它仍然會讀取整個文件嗎? ;) 我想,如果元數據附加到追蹤行數的文件(它可能只適用於文本文件),那麼你可以閱讀它。但我不認爲存在這樣的事情。 – FrustratedWithFormsDesigner 2010-01-20 16:34:08
這樣或那樣的(正則表達式,FileStream等)的東西,某處將不得不通過換行符。
取決於線路的長度...通常最快的方法就是做這個用這個簡單的公式 - 獲得以字節爲單位的文件長度和線的長度劃分,例如:
const int LINE_LENGTH = 80; System.IO.FileInfo f = new System.IO.FileInfo(path); int noLines = f.Length/LINE_LENGTH;
上面假定線的長度是恆定的80個字符寬...
如果長度是可變的,存在從通過每個線打開該文件並重復這樣做,除了沒有其它方式並跟蹤行數。
編輯: 我才意識到一個更簡單的方法後,我貼在下面留言.. 這豈不是更容易實際使用的外殼下System.Diagnostics.Process
命名空間使用的參數作爲文件路徑來調用grep -c "$(\r?\n?|\n)"
問題 - 這將使它更加靈活,並可以滿足任何文件。你必須做的輸出被讀取和正則表達式,它得到的線路的實際數量,例如,用我的grep與用Borland C來的唯一的事情,我得到這個輸出
C:\Documents and Settings\Tom>grep -c "$(\r?\n?)" 273.txt File 273.txt: 35 lines match
輸出和里程可能會有所不同,-c
命令切換到grep意味着'計數'
- 1. 計算文件中的行數 - C
- 2. 在C++文件中計數類
- 3. 如何在C++中計算文件的行數?
- 4. UWP C#文本行計數
- 5. 如何計算C++中每行文本文件的字數?
- 6. 用於計算文件中行數的C函數
- 7. 計算文本文件中的行數
- 8. 從文本文件中計數行
- 9. 在java中運行c計時器執行文件
- 10. 計數在Excel的行數文件
- 11. 計算文件中的字符數C#
- 12. 如何用C#中的文本文件中的數字進行數學計算?
- 13. 計數文件中的數字,在C中
- 14. 計數的文件數量的文件夾,在C#
- 15. (C++)從文本文件計數數組中的反轉,每行一個數組?
- 16. 如何計算使用C++的文件中的行數?
- 17. 從txt文件中計算單個行數c#
- 18. C++使用類來計算文件中的行數
- 19. 最緊湊的方法來計算C++文件中的行數
- 20. 計數從文本文件中每行字數在Python
- 21. C中的行計數器
- 22. 在文本文件中計算新行
- 23. 用richtextbox在C#中顯示計數行
- 24. 計算文件中的行數
- 25. Node.js:計算文件中的行數
- 26. 計算文件中的行數 - Scala
- 27. 計算文件中的行數
- 28. 計算C文本文件中完整基因的數量C
- 29. 在c#中設計KML文件樣式
- 30. 在c中計算Matlab .m文件#
遍佈整個文件?我們正在談論3行代碼來計算這一點。 – 2010-01-20 16:29:31