从多个文本文件中读取,数组显示在列表框和标签上

时间:2011-06-11 09:29:20

标签: c# winforms string

嗨,我有一个程序:

1-用户应首先从ComboBox中选择一个项目。

选择后,会在后台打开一个文本文件,其内容会添加到ListBox

private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
{
    switch (comboBox2.SelectedIndex)
    {
        case 0:
            listBox3.Items.Clear();
            FileInfo file0 = new FileInfo("C:\\hardwaremaintenance.txt");
            StreamReader stRead0 =file0.OpenText();
            while (!stRead0.EndOfStream)
            {                
                listBox3.Items.Add(stRead0.ReadLine());
            }
            break;
        case 1:
            listBox3.Items.Clear();
            FileInfo file1 = new FileInfo("C:\\NetworkManagement.txt");
            StreamReader stRead1 =file1.OpenText();
            while (!stRead1.EndOfStream)
            {                
                listBox3.Items.Add(stRead1.ReadLine());
            }
            break;
        case 2:
            listBox3.Items.Clear();
            FileInfo file2 = new FileInfo("C:\\Software.txt");
            StreamReader stRead2 =file2.OpenText();
            while (!stRead2.EndOfStream)
            {                
                listBox3.Items.Add(stRead2.ReadLine());
            }
            break;
        case 3:
            listBox3.Items.Clear();
            FileInfo file3 = new FileInfo("C:\\SyriatelApplications.txt");
            StreamReader stRead3 =file3.OpenText();
            while (!stRead3.EndOfStream)
            {                
                listBox3.Items.Add(stRead3.ReadLine());
            }
            break;
        case 4:
            listBox3.Items.Clear();
            FileInfo file4 = new FileInfo("C:\\NewHardwareRequest.txt");
            StreamReader stRead4 =file4.OpenText();
            while (!stRead4.EndOfStream)
            {                
                listBox3.Items.Add(stRead4.ReadLine());
            }
            break;
    }
}

2用户从列表框中的(最近)添加的项目中选择一个项目(从步骤1开始),并在此操作后再次打开一个新的文本文件,其中填充了这种格式的文本,其中“ |“是分隔符号

private void listBox3_SelectedIndexChanged(object sender, EventArgs e)
{
    int itemsCount = listBox3.Items.Count;
    string[] items = new string[itemsCount];

    for (int i = 0; i < itemsCount; i++)
        items[i] = listBox3.Items[i].ToString();

我的大脑突然卡在这里。

下一步应该采用ListBox中的每个项目,并将其与上一个打开的文件中的行连接,选择项目= =任何行中的第一个单词。

我不知道该怎么做:

  1. 何时以及如何打开新文件并读取每一行并将每个项目放在一个数组中(彼此分隔行)。
  2. 如何将ListBox中的所选元素与第二个文件中任何行中的第一个单词进行比较。
  3. 如果匹配,我想使用行中的剩余信息来填充标签和文本框。

    程序界面如下

    如果我困惑你,我真的很抱歉,但我不是那么有编程经验

1 个答案:

答案 0 :(得分:2)

一些帮助您入门的提示:

  • 不要使用控件(listBox3)作为数据存储。而是向您的班级添加string[] items
  • 当您在switch()使用重构|提取方法
  • 中进行代码修改时
  • 使用System.IO.File.ReadAllLines(fileName)
  • 可以更好,更轻松地阅读TextFiles
  • 如果要在其他文件中找到单词(str=listbox3.SelectedItem),请使用lines[i].Contains(str)