如何在 c# 中从多个文本文件中提取信息

本文关键字:文本 文件 提取 信息 | 更新日期: 2023-09-27 18:32:10

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

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

如何在 c# 中从多个文本文件中提取信息

每次找到"匹配项"时,都会用更新的值覆盖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");
            }
        }
    }
}