这是一个我必须做的课程作业。
"选择文件后,程序应读取文件(使用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 :(得分: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
}
}