2017-04-09 39 views
0

我正在嘗試使用StreamReader將數據從文本文件分解爲多個列表框。到目前爲止,我已經能夠將所有的數據導入一個列表框,但是我的項目的下一步需要分割數據,我認爲我比列表更好地理解列表框。我努力尋找類似的問題,但因爲我是初學者,所以我發現的大部分內容都讓我更加困惑。我只能夠完成成功地追蹤:StreamReader到多個列表框

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

我在我的.txt文件數據有三種塊,像這樣:

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); 

等我只有兩種顏色一起工作的代碼,但很多爲每個顏色的數據。我的問題是,我對編碼感到陌生,無法實現我學會做這種事情的基本知識。

什麼的代碼行,我缺少一條線下方添加一行到列表框,而它StreamReads?我是否需要使用

int counter = 0; 

和1或2個增加它來獲得這些線路,還是我想得基本?

非常感謝您的幫助。我覺得我錯過了一些我尚未掌握的簡單東西。

回答

0

一個可能的出路就是通過三行(即整個區塊),而不是一個閱讀:

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