幾里方园 2020-10-21 18:53 采纳率: 0%
浏览 166

C# Winform设计批量计算的小程序

1、在使用C#做窗体设计的时候怎样通过按钮点击批量读取指定路径下的文件夹里面的文件,并通过文件名中的关键字,例如“c_gls_LAI300-LAI_202004300000_CUSTOM_PROBAV_V1.0.1.tiff ”中的20200430这个日期关键字来批量选取文件,并将文件路径以及文件名显示在列表框中;

2、存放数据的是一个文件夹,要实现批处理,需要从一个文件夹里把一堆文件读入,要用程序去判断哪些是需要的,比如,需要LAI,那么只需要选出包含LAI但不包含AFTER、BEFORE其他关键字的,并且可以通过文件名判断文件的时间,例如上面的文件时间是20200430

3、选出的LAI文件放在ListBox1中,FVC文件放在ListBox2中;

4、点击执行的时候可以将两个文件放入公式中运行;求和函数图片说明

5、形如图片的布局(布局可适当修改)
图片说明

6、函数可参考PIE的波普运算。

  • 写回答

1条回答 默认 最新

  • lch737171__ 2020-10-21 21:38
    关注

    这段代码是我用做的,多个文件同时读入处理;
    代码段1.
    //读入多个文件并一个一个的执行
    OpenFileDialog ofd = new OpenFileDialog();
    ofd.Multiselect = true;
    ofd.Title = "打开......信号";
    ofd.InitialDirectory = @"D:\mysoft";
    ofd.Filter = "TXT文件|*.txt|所有文件|*.*";

            if (ofd.ShowDialog() == DialogResult.OK)
            {
    
              foreach (string file in ofd.FileNames)
                {
                    StreamReader sr = new StreamReader(file);
                    string line;
                    while ((line = sr.ReadLine()) != null)
                    {
    
    
                       //代码2位置
    
                    }
                    sr.Close();
                }
    
            }
    

    代码段2

    //判是不是你的文件并把读出的数,赋给list 变量进行计算
    //ThermoData.temp是我自已定义的一个数据类中的list

              FileStream fs = new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read);
                StreamReader sr = new StreamReader(fs,Encoding.Default); 
    
    
              if (sr.ReadLine() == "TRTR")//确定你的文件
               {
                    ThermoData.itemname = sr.ReadLine();
                    foreach (var series in Chart1.Series)
                   {
                       xxxxxxxxxxxx;
                   }
    
    
    
                    /*检测文件异常*/
                    try
                    {
                        string strLine;
                        while (sr.EndOfStream == false)
                        {
                            strLine = sr.ReadLine();
                            string[] s = strLine.Split(new char[] { ',' });
                            ThermoData.temp0.Add(Convert.ToDateTime(s[0]));
                            ThermoData.temp1.Add(Convert.ToDouble(s[1]));
                            ThermoData.temp2.Add(Convert.ToDouble(s[2]));
                            ThermoData.temp3.Add(Convert.ToDouble(s[3]));
                            ThermoData.temp4.Add(Convert.ToDouble(s[4]));
                            ThermoData.temp5.Add(Convert.ToDouble(s[5]));
                            ThermoData.temp6.Add(Convert.ToDouble(s[6]));
                            ThermoData.temp7.Add(Convert.ToDouble(s[7]));
                            ThermoData.temp8.Add(Convert.ToDouble(s[8]));
                            ThermoData.temp9.Add(Convert.ToDouble(s[9]));
                            ThermoData.temp10.Add(Convert.ToDouble(s[10]));
                            ThermoData.temp11.Add(Convert.ToDouble(s[11]));
                            ThermoData.temp12.Add(Convert.ToDouble(s[12]));
                            ThermoData.temp13.Add(Convert.ToDouble(s[13]));
                            ThermoData.temp14.Add(Convert.ToDouble(s[14]));
                            ThermoData.temp15.Add(Convert.ToDouble(s[15]));
                            ThermoData.temp16.Add(Convert.ToDouble(s[16]));
                            ThermoData.Len++;
                        }
                        sr.Dispose();
                        fs.Dispose();
                    }
                    catch (Exception)
                    {
                        MessageBox.Show(" 文件格式不正确!");
                    }            
    
    
    
    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料