文本文件到列表框(C#)

时间:2015-11-02 00:12:53

标签: c# visual-studio-2012

这是一个我必须做的课程作业。

"选择文件后,程序应读取文件(使用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也一样。

1 个答案:

答案 0 :(得分: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
    }
}