文本文件搜索,组合框和Datagridview C#

时间:2017-06-28 12:13:22

标签: c# winforms datagridview combobox

我在Winform上有以下内容:

  • 按钮 - 打开* .txt文件,代码已经完成并正常工作
  • 组合框 - 显示找到的日期
  • Datagridview - 显示所选日期的信息

现在我想知道如何编写以下代码来执行以下操作:

  1. 在txt文件中搜索日期(无重复项)
  2. 在组合框中显示找到的日期。
  3. 一旦此人从组合框中选择了所需的日期,该日期的信息将显示在datagridview中。
  4. 我会感激任何帮助,因为我没有相应的工作代码。

    到目前为止我的代码是:

    private void Historybutton_Click(object sender, EventArgs e)
    {
        SSBPgroupBox.Enabled = false;
        DataTable HFdt = new DataTable();
        DialogResult result1 = openFileDialog2.ShowDialog();
    
        if (result1 == DialogResult.OK) // Test result.
        {
    
            String Fname = openFileDialog2.FileName;
            string raw_text = System.IO.File.ReadAllText(Fname);
    
    
            //add headers to datagrid view
            HFdt.Columns.Add("Sequence");
            HFdt.Columns["Sequence"].DataType = Type.GetType("System.Int32");
            HFdt.Columns.Add("Timing");
            HFdt.Columns["Timing"].DataType = Type.GetType("System.Int32");
        }
    
        HistorydataGridView.DataSource = HFdt;
    }
    

    文本文件示例:

    17/05/15-16:40:13:BLAST DRIVER ON
    
    BLASTING PLAN
    
    PU1053 (0005 DETS):
    
    1/7B7C35;11/7B70B2;21/7B7058;31/7B83A1;41/7B70D1;
    
    BLAST SUMMARY
    
    1 PU, 00005 DETS
    
    DELAYS MIN/MAX IN MS : 00001 / 00041
    
    GAP MIN/MAX IN MS : 00010 / 00010
    
    16:40:32:LINE TEST
    
    CALIBRATION
    
    EXTRA DETS :None
    
    INTERMITTENT CONNECTION DETS :None
    
    TEST DETS
    
    MISSING DETS :None
    
    OUT OF ORDER DETS :None
    
    INCOHERENT DETS :None
    
    DELAY ERRORS DETS :None
    
    16:41:52:TEST END
    
    16:44:02:CHARGE
    
    CHECK ENERGIE
    
    ADDITIONAL MISSING DETS :None
    
    LOW ENERGY DETS :None
    
    ADDITIONAL INCOHERENT DETS :None
    
    16:44:29:FIRE
    

    我想要的是在组合框中显示如下日期:

    17/05/15 - 0005 Dets
    

    当用户选择此日期时,datagridview将显示:

    Sequence    Timing
    
    1           1
    
    2           11
    
    3           21
    
    4           31
    
    5           41
    

    我添加了以下代码以获取列表框中显示的文本文件。我仍然只是想显示日期:

    String Fname = openFileDialog2.FileName;
                string[] raw_text = System.IO.File.ReadAllLines(Fname);
                var lines = new List<string>();
                foreach (var line in File.ReadLines(Fname))
    
                {
                    listBox1.Items.Add(line);
                }
    

1 个答案:

答案 0 :(得分:0)

public class Info
    {
        public string _Info { get; set; }
        public DateTime _Date { get; set; }

    }

        List<Info> infos = new List<Info>();
        //Onload - insert infos from *txt file


        List<DateTime> dates = infos.GroupBy(x => x._Date).Select(y => y.First()).Select(z=>z._Date).ToList();
        //no duplicates dates

        List<string> dateInfos = infos.Where(x => x._Date == selectedDate).Select(z=>z._Info).ToList();
        //show infos for selected date