2017-04-09 8 views
0

StreamReaderを使用して、テキストファイルのデータを複数のリストボックスに分割しようとしています。これまでのところ、すべてのデータをの1つのリストボックスに入れることができましたが、私のプロジェクトの次のステップではデータを分割する必要があり、配列よりもリストボックスをよく理解していると思います。私は同様の問題を探す努力をしましたが、私は初心者であることから、私が見つけたものの大部分は私にさらに難解です。私は成功し、次を達成することができました:私の.txtファイルで複数のリストボックスへのStreamReader

StreamReader file = new StreamReader(openFileDialog1.FileName); 
string data; 
while (!file.EndOfStream) 
{ 
    data = file.ReadLine(); 
    listBox1.Items.Add(data); 
} 
file.Close(); 

私のデータはそうのような3のブロックに来る:

blue 
david 
8042 
red 
joseph 
7042 

私はデータの形式を変更することができませんので、私は

if (blue) 
    listBox1.Items.Add(david); 
    listBox2.Items.Add(8042); 
else if (red) 
    listBox3.Items.Add(joseph); 
    listBox4.Items.Add(7042); 

などは私だけで動作するように2つの色を持っているような方法でそれをコード化しようとしているが、これらの色のそれぞれについて、データがたくさんされています。私の問題は、コーディングが新しく、このようなことを学んだことの基礎を整えていないことです。

の下にの下にStreamReadsの行を追加する行がありますか?

int counter = 0; 

を使用し、それらの行を取得するには1または2を増やす必要がありますか、あまりにも基本的に考えていますか?

ありがとうございました。私はまだ分かりませんが非常にシンプルなものを見逃しているような気がします。

答えて

0

可能な方法の1つアウトではなくの三行(すなわちブロック全体)によって読んでいる:

using (StreamReader file = new StreamReader(openFileDialog1.FileName)) { 
    while (!file.EndOfStream) { 
     string color = file.ReadLine(); 
     string name = file.ReadLine(); 
     string number = file.ReadLine(); 

     if (color == "blue") { 
     listBox1.Items.Add(name); 
     listBox2.Items.Add(number); 
     } 
     else if (color == "red") { 
     listBox3.Items.Add(name); 
     listBox4.Items.Add(number); 
     } 
    } 
    } 
+0

、ドミトリーをありがとう!あなたは私が見逃していたものを正確に見せてくれました – Minnophous

関連する問題