-1

我有一个处理条形码的项目。它基本上是一个库存跟踪程序,可以告诉我们在任何给定时间我们有什么库存。每个条形码都有一个包含相关信息的文本文件。每个文件包含以下信息行:

  1. “办公室打印机” <- 这是项目描述
  2. "1" <- 0 表示缺货,1 表示有货
  3. “无关信息” <- 排序中未使用的任何附加信息

大约有 200 多个不同的文本文件,我需要先搜索项目描述,然后再次搜索这些文件以查看它们是否有库存。理想情况下,它会显示一个整数,列出库存数量,但如果最简单的话,它也可以只显示文本文件的名称。到目前为止,这是我的代码。comboBox1 有一个可供搜索的可能项目的下拉列表。richTextbox1 是我用来显示搜索结果的设置。现在它只显示一个“1”。

编辑
感谢 VBRonPaulFan 的突破。这会根据组合框的选择显示有多少商品有库存。我要研究的唯一另一件事是让它显示库存商品的数量,而不是全部列出。谢谢!

    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");
                }
            }
        }
    }
4

1 回答 1

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");
            }
        }
    }
}
于 2012-04-25T18:46:37.137 回答