2015-11-02 85 views
-1

這是一個我不得不作爲課堂作業的項目。文本文件到列表框(C#)

「一旦文件被選中,程序應該讀取文件(使用StreamReader)並將零件編號加載到第一個ListBox中,每行一個零件,相應的成本應該加載到第二個ListBox,一個每行「。成本位於文本文件中的零件編號的正下方。

如:

c648

9.60

A813

9.44

C400

0.10

A409

2.95

B920

1.20

這是我到目前爲止所。這很可能是不正確的。

private void readToolStripMenuItem_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      StreamReader srdInput;    
      dlgOpen.Filter = "Text Files (*.txt) |*.txt|All Files (*.*)|*.*"; 
      dlgOpen.InitialDirectory = Application.StartupPath; 
      dlgOpen.Title = "Please select the PartsCost file."; 

      if (dlgOpen.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
      { 
       srdInput = File.OpenText(dlgOpen.FileName); 
      } 
     } 

     catch (Exception ex) 
     { 
      MessageBox.Show("Error while trying to read input file." + "/n" + ex.Message); 
     } 

    } 

我需要能夠採取所有的部分名稱,如c948和放置在lstbox1裏面。然後,對於lstbox2,將列出9.60的價格。讀取文件時,應列出所有零件名稱和價格。

所以,我需要lstBox1顯示c648(下一行)a813。成本相同的lstBox2。

回答

0

您應循環讀取兩行,每次迭代一次,一次用於零件名稱,另一次用於成本。像這樣:

using (StreamReader srdInput = File.OpenText(dlgOpen.FileName)) 
{ 
    while (!srdInput.EndOfStream) 
    { 
     string line1 = srdInput.ReadLine(); 
     string line2 = srdInput.ReadLine(); 

     //Insert line1 into the first ListBox and line2 into the second listBox 
    } 
}