-1

バーコードを扱うプロジェクトがあります。これは基本的に、いつでも在庫があるものを知らせる在庫追跡プログラムです。各バーコードには、関連情報を含むテキスト ファイルがあります。各ファイルには、次の情報行が含まれています。

  1. 「オフィスプリンター」←商品説明です
  2. "1" <- 0 は在庫なし、1 は在庫あり
  3. 「無関係な情報」 <- ソートに使用されない追加情報

約 200 以上の異なるテキスト ファイルがあり、最初に商品説明を検索し、次にそれらを再度検索して、在庫があるかどうかを確認する必要があります。理想的には、在庫数を示す整数を表示しますが、それが最も簡単な場合は、テキスト ファイルの名前だけを表示することもできます。これまでの私のコードは次のとおりです。omboBox1 には、検索可能な項目のドロップダウン リストがあります。richTextbox1 は、検索結果を表示するために設定したものです。現在、「1」が 1 つしか表示されていません。

EDIT
ブレークスルーをしてくれた 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");
                }
            }
        }
    }
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 に答える