C#读取文件夹中所有txt文档中的数据,并计算其有效值输出

C#读取文件夹中所有txt文档中的数据,并计算其有效值输出

一、文件夹下的所有txt文档:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
二、代码:

/// <summary>
/// 遍历两级目录下的所有txt文档
/// 获取每个txt文档中的数据,并计算其有效值
/// </summary>
  static void Main(string[] args)
        {
            string path0 = @"E:\不同转速";  //根目录
            string[] files0 = Directory.GetDirectories(path0);                       //获取根目录下的子目录
            
            foreach (string file0 in files0)                                         //遍历根目录下的所有子目录
            {
                string path1 =file0;  
                string[] files1 = Directory.GetFiles(path1,"*.txt");                 //获取子目录下的所有TXT文档名
                foreach (string file1 in files1)                                     //遍历子目录下的所有TXT文档
                {
                    //Console.WriteLine(file1);                                      //打印所有子目录下的所有TXT文件名
                    string[] lines = File.ReadAllLines(file1);                       //读取txt文档的所有行
                    List<double> listData = new List<double>();                      //初始化数据集合用于保存读取的txt中的数据
                    List<double> listRMS = new List<double>();                       //有效值集合

                    for (int i = 0; i < lines.Length; i++)                           //将读取到的txt中的数据写入list中
                    {
                        try
                        {
                            listData.Add(Convert.ToDouble(lines[i]));                         
                        }
                        catch
                        {
                            Console.Write("字符串不合法");
                        }
                        finally
                        {

                        }
                    }
                    Console.WriteLine("有效值RMS是:RMS={0}", GetRMS(listData));       //输出有效值
                }
            }
            Console.ReadKey();
        }


        /// <summary>
        /// 获取均值
        /// </summary>
        /// <param name="ls"></param>
        /// <returns></returns>
        public static double GetMean(List<double> ls)
        {
            double sumNumber = 0;
            foreach (double item in ls)
            {
                sumNumber = sumNumber + item;
            }
            return (sumNumber / ls.Count);
        }
        /// <summary>
        /// 获取有效值(均方根值)
        /// </summary>
        /// <param name="ls"></param>
        /// <returns></returns>
        public static double GetRMS(List<double> ls)
        {
            List<double> lsNew = new List<double>();
            double meanValue = 0;
            foreach (var item in ls)
            {
                lsNew.Add(item * item);
            }
            meanValue = GetMean(lsNew);
            return Math.Sqrt(meanValue);
        }

三、输出结果:
在这里插入图片描述
觉得有用的兄弟别忘点个赞支持一下

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值