我有一个处理条形码的项目。它基本上是一个库存跟踪程序,告诉我们在任何给定时间我们有库存。每个条形码都有一个包含相关信息的文本文件。每个文件包含以下信息行:
大约有200多种不同的文本文件,我需要首先搜索项目描述,然后再搜索这些文件以查看它们是否有库存。理想情况下,它会显示一个整数,列出库存中的数字,但如果最简单,它也可以显示文本文件的名称。到目前为止,这是我的代码。 comboBox1有一个可供搜索的项目的下拉列表。我设置了richTextbox1来显示搜索结果。现在它只显示一个“1”。
修改
感谢VBRonPaulFan的突破。这将根据comboBox的选择显示库存的库存数量。我要研究的另一件事就是让它显示库存中的物品数量而不是列出所有物品。谢谢!
private void searchButton_Click(object sender, EventArgs e)
{
richTextBox1.Text = "";
foreach (string fileName in Directory.GetFiles("C:\\ITRS_equipment_log\\", "*.txt"))
{
using (StreamReader sw = new StreamReader(fileName))
{
string Description = sw.ReadLine();
bool InStock = sw.ReadLine().Trim() == "1";
if (Description.Contains(comboBox1.Text) && InStock == true)
{
richTextBox1.AppendText("Item '" + Description + "' is " + (InStock ? "in" : "not in") + " stock.\r\n");
}
}
}
}
答案 0 :(得分:1)
每当您找到“匹配”时,您都会使用更新后的值覆盖richTextBox1中的值。它并没有“停止”。在第一个文件之后,它只显示它在完成所有文件运行时设置的最后一个值...
关于如何向用户展示这一点并不是很清楚...但是富文本框可能不是最佳方式。组合框可能会更好。这看起来基本上就是你想要做的事情吗?
private void searchButton_Click(object sender, EventArgs e)
{
foreach (string fileName in Directory.GetFiles("C:\\ITRS_equipment_log\\", "*.txt"))
{
using (StreamReader sw = new StreamReader(fileName))
{
string Description = sw.ReadLine();
bool InStock = sw.ReadLine().Trim() == "1";
if (Description.Contains(comboBox1.SelectedText))
{
richTextBox1.AppendText("Item '" + Description + "' is " + (InStock ? "in" : "not in") + " stock.\r\n");
}
}
}
}