读取同一文件夹下多个txt文件中的特定内容并做统计

有网友在问,C#读取同一文件夹下多个txt文件中的特定内容,并把各个文本的数据做统计。

昨晚Insus.NET抽上些少时间,来实现此问题,加强自身的功力。先是准备好几个文本文件。
第一个文本文件t1.txt:


 
Money of Xiaohong(this year) 12
Money of Xiaoma(Last year) 13
sdfgsd
Money of Xiaoqiang(this year) 16
Money of Xiaogang(Last year) 14
45685221, 82684

第二个文本文件t2.txt:


 
Money of Xiaohong(this year) 11
Money of Xiaoma(Last year) 8
asdfasdf
Money of Xiaoqia sdfkka;sdf
asdfasdfads...asdfadsf, ang(Last year)
asdfadsfl.
Money of Xiaoqiang(this year) 12
.............<<<>..d
Money of Xiaogang(Last year) 17
sadf asdf asdf 23

第三个文本文件t3.txt:


 
Money of Xiaohong(this year) 15
kkkk----asdfaasdflkiq(0werq)ewro0asdfl
Money of Xiaoma(Last year) 6
asdfadsf
Money of Xiaoqiang(this year) 22
564465456[[[]ghjfhj]]
Money of Xiaogang(Last year) 8

上面3个文本本件中,只有highlight的行是需要获取的。特别是第二个文本文件,虚线的的位置,与想获取的数据行都有相似的地方。

下面Insus.NET创建一个物件class OutstandingAchievement,来做文本文件数据行分析,获取需要的数据行。

上面的类别中,序号#1过滤当前行所有\n\r,并替换为一个空格。
#2过滤当前行所有制表符\t,并替换为一个空格。
#3过滤当前行中多个连续空格,并替换为一个空格。
#4是判断文本行头是否匹配为"Money of ",如果不是将跳过此行。
#5以空格为分段,文本行是否为5个节段。
#6以前四段重新组合,并判断文本行是否匹配"(this year)" 或“(Last year)”。
#7判断最后一个节段是否为数值。
#8 判断前四段的长度是否大于匹配字符长度。
#9最后一个数据,如果不是int,将返回false.

写一个函数,获取所有文本文件:

写另外一个函数,是获取所有分析好的数据:

OK,写完了。
如果还想把数据输出来看看结果,还得写上一行代码。

结果:

 
 

读取同一文件夹下多个txt文件中的特定内容并做统计的更多相关文章

  1. VBA读取可选择文件夹下可选择txt文件内容

    Sub OneTxt() '打开一个txt文件 Dim Filename As Variant, extLine&, mArr() As String Dim i%, j% ChDir Thi ...

  2. MATLAB读取一个文件夹下的多个子文件夹中的多个指定格式的文件

    MATLAB需要读取一个文件夹下的多个子文件夹中的指定格式文件,这里以读取*.JPG格式的文件为例 1.首先确定包含多个子文件夹的总文件夹 maindir = 'C:\Temp Folder'; 2. ...

  3. 将文件夹下的所有csv文件存入数据库

    # 股票的多因子分层回测代码实现 import os import pymysql # import datetime, time # from config import * database_ta ...

  4. linux 系统获得当前文件夹下存在的所有文件 scandir函数和struct dirent **namelist结构体[转]

    linux 系统获得当前文件夹下存在的所有文件 scandir函数和struct dirent **namelist结构体 1.引用头文件#include<dirent.h> struct ...

  5. android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件

    简介 XStream 是一个开源项目,一套简单实用的类库,用于序列化对象与 XML 对象之间的相互转换. 将 XML 文件内容解析为一个对象或将一个对象序列化为 XML 文件. 1.下载工具 xstr ...

  6. C#_IO操作_查询指定文件夹下的每个子文件夹占空间的大小

    1.前言 磁盘内存用掉太多,想查那些文件夹占的内存比较大,再找出没有用的文件去删除. 2.代码 static void Main(string[] args) { while (true) { //指 ...

  7. java批量解压文件夹下的所有压缩文件(.rar、.zip、.gz、.tar.gz)

    // java批量解压文件夹下的所有压缩文件(.rar..zip..gz..tar.gz) 新建工具类: package com.mobile.utils; import com.github.jun ...

  8. 【bat批处理】批量执行某个文件夹下的所有sql文件bat批处理

    遍历文件夹下所有的sql文件,然后命令行执行 for /r "D:\yonyou\UBFV60\U9.VOB.Product.Other" %%a in (*.sql) do ( ...

  9. MapReduce会自动忽略文件夹下的.开头的文件

    MapReduce会自动忽略文件夹下的.开头的文件,跳过这些文件的处理.

随机推荐

  1. c#数据库操作大全

    原文:c#数据库操作大全 1.提取单条记录 //using System.Data; //using System.Data.SqlClient;  using (SqlConnection cn = ...

  2. css2与css3的区别

    css2与css3的区别 CSS3引进了一些新的元素新的特性,我收集以下,自己做了一个小结: animation(基础动画)eg:  div{animation: myfirst 5s linear ...

  3. 第4章3节《MonkeyRunner源码剖析》ADB协议及服务: ADB协议概览SYNC.TXT翻译参考(原创)

    天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文“寻求合作伙伴编写<深入理解 MonkeyRunner>书籍“.但因为诸多原因,没有如愿.所以这里把草稿分享出来,所以错误在 ...

  4. android意图传递参数返回结果(六)

    例如,有两页a,b. a参数传递到页面b页面,b后,将获得的参数的处理页,然后将结果传回与参数的页面a. 1.a主页MainActivity的代码类型,如以下: private Button butt ...

  5. SOA面向服务架构

    SOA面向服务架构 风尘浪子 只要肯努力,梦想总有一天会实现 随笔分类 - SOA面向服务架构 结合领域驱动设计的SOA分布式软件架构 摘要: 领域驱动设计DDD的总体结构,Repository层使用 ...

  6. Android NDK进入发展

    使用互联网有很多javah命令生成一个头文件来完成JNI写,但事实上ADT集成NDK后.点点鼠标就可以了,网上的介绍是非常小懒的方法,在这里,我们主要谈论的懒惰JNI发展. 为ADT组态NDK.请个人 ...

  7. 苹果iOS苹果公司的手机用户都有权索赔

    大家知道.手机中的操作系统(基础软件)存储在手机固(firm,ware)之中,一般而言,手机用户自己是不能修改的. 苹果iOS手机的系统后门(服务程序)也存储在手机固件之中.手机用户自己是无法删除的. ...

  8. 用一条SQL语句取出第 m 条到第 n 条记录的方法

    原文:用一条SQL语句取出第 m 条到第 n 条记录的方法   --从Table 表中取出第 m 条到第 n 条的记录:(Not In 版本)       *    FROM Table     id ...

  9. Redis查看帮助文档

    Redis查看帮助文档的方式,目前我用到的主要有两种: 1.访问官方文档: Redis文档 2.在redis-cli中通过命令查看,输入"?"或者"help"回 ...

  10. Linux Telnet安装配置

    本文以红帽6.2 64位版本为例,其它linux类似: linux默认是使用SSH服务的 而不安装telnet服务 ,所以需要手动安装telnet. 1.telnet的安装包有两个,分别是: teln ...