|
分類:[C# (Windows)]
お世話になります。 本日よりVC# 2005始めた初心者です。 txtファイルより行数をカウントするサンプルを参考書見ながら作っていたのですが、 実際の行数の倍をカウントしてしまいます。 改行コード(CR/LF)の関係かと思うのですが、下記の15行目を Console.WriteLine("{0}", lineCount); --> Console.WriteLine("{0}:{1}", lineCount, sr.ReadLine()); にし、ステップ実行させると読み込んだ行数とlineCountの値は一致するのですが・・・・
質問(1) --> ReadLineは "CR"が読めないのでしょうか? 質問(2) --> 何故、sr.ReadLine() を Console.WriteLine すると正確にカウントできるのでしょうか?
すみませんが、どこかで聞いた事があるような気がするのですが、失念してしまいました。 ご指導の程、お願い致します。
1 //行数をカウントするメソッド 2 public void GetLineCountFromFile() 3 { 4 if (!File.Exists(filename)) 5 { 6 --lineCount; 7 } 8 else 9 { 10 FileStream fs = File.Open(filename, FileMode.Open, FileAccess.Read); 11 StreamReader sr = new StreamReader(fs); 12 while (sr.ReadLine() != null) 13 { 14 lineCount += 1; 15 Console.WriteLine("{0}", lineCount); 16 17 } 18 fs.Close(); 19 } 20 }
|