私はCSVファイルを4つのほぼ同等の部分に分割するプログラムを作成しています。ファイル分割に行がありません
例として、2000行のCSV入力ファイルを使用していますが、出力ファイルを確認すると、最初のファイルに行がありません。また、私が書いているので意味のない未完成の行もあります1行ずつ。ここにコード:
using System.IO;
using System;
class MainClass {
public static void Main(string[] args){
string line;
int linesNumber = 0, linesEach = 0, cont = 0;
StreamReader r = new StreamReader("in.csv");
StreamWriter w1 = new StreamWriter("out-1.csv");
StreamWriter w2 = new StreamWriter("out-2.csv");
StreamWriter w3 = new StreamWriter("out-3.csv");
StreamWriter w4 = new StreamWriter("out-4.csv");
while((line = r.ReadLine()) != null)
++linesNumber;
linesEach = linesNumber/4;
r.DiscardBufferedData();
r.BaseStream.Seek(0, SeekOrigin.Begin);
r.BaseStream.Position = 0;
while((line = r.ReadLine()) != null){
++cont;
if(cont == 1){
//fisrt line must be skipped
continue;
}
if(cont < linesEach){
Console.WriteLine(line);
w1.WriteLine(line);
}
else if(cont < (linesEach*2)){
w2.WriteLine(line);
}
else if(cont < (linesEach*3)){
w3.WriteLine(line);
}
else{
w4.WriteLine(line);
}
}
}
}
なぜ筆記部品が間違っているのですか?どうすれば修正できますか?
ありがとうございました。
さて、デバッガでコードの各行を踏んだことはありますか? – OldProgrammer
私たちの使用するデータの例? – BenVlodgi
最初のファイルに行がないことはどういう意味ですか?これは最後の行ですか?<= 'ではなく、<='ではありません。不完全な行はどういう意味ですか?私はこれを 'using'ステートメントの中にラップして、正しいエンコーディングを使用することをお勧めします。 – Jegan