今天有浏览论坛时,又看见一篇是读取TXT文本文件的论题。Insus.NET也想以自己的想法来实现,并分享于此。

文本文件是比较复杂,获取数据也是一些文本行中取其中一部分。为了能够取到较精准的数据,Insus.NET分写几步来实现。每一步使用一个类。毕竟现在我们写的程序是面向对象嘛。首先在站点下面创建文本文件:

==================================================
Sat Feb 12, 16:45 CST-0800 2011 (OK)
--------------------------------------------------
CELLPAG: 'D51179C' Number Value Name
1 32 PAGPCHCONG
2 524 PAGETOOOLD
--------------------------------------------------
Sat Feb 12, 16:45 CST-0800 2011 (OK)
--------------------------------------------------
CELLPAG: 'D5143A' Number Value Name
1 64 PAGPCHCONG
2 537 PAGETOOOLD
--------------------------------------------------
Sat Feb 12, 16:45 CST-0800 2011 (OK)
--------------------------------------------------
CELLPAG: '516A' Number Value Name
1 75 PAGPCHCONG
2 3677 PAGETOOOLD
--------------------------------------------------

如下图:

要汲取的数据应该是高亮部分的数据。下面先写一个类SourceDataList:

这个类,处理粗糙的数据,去除每行文本行的头尾空格,去除每行文本行中有连续几个空格的,仅保留一个。然后对文本行进行以空格为分隔,只要分段为二段或三段的文本行。
再进一步,写另外一个类DataParse,根据类名,就大约知道这是对初次获取的数据时行分析。

这个类,能取到基本上定型的数据。对转入的文本行进分割(空格为分隔符),分别以二段三段来判断。
如果是二段的文本行。第一个元素是":"结束的,截除冒号符号之后,还要判断是否全是大写字母。第二个元素,是单引号"'"开始和结束的。只要全符合这些条件,就是我们需要文件行。
如果是三段文本行,第一,第二个元素均是整型,而第三个元素,应该是全大写字母。符合条件的文本行,就是需要获取的文本行。

接下来,我们再写一个类别,是对上面获取的数据进行组合,DataStructures:

从这个类来处理到的数据,已经接近我们需要数据行了。每行数据有三个字段,一个为字符串,第二和第三字段为整型。
最后一个类DataHelper:

处理文本文件,去获取数据,并收集于List(Of DataStructures)集合中。
OK,现在我们就可以展现获取的数据了,在站点中,创建一个网页.aspx,去Page_Load事件写:

运行网页时,看到效果:

VB.NET提取TXT文档指定内容的更多相关文章

  1. C#提取TXT文档指定内容

    早上有分享一篇<VB.NET提取TXT文档指定内容> http://www.cnblogs.com/insus/p/3267347.html 那是原网友的需求用VB.NET写的.刚才有只懂 ...

  2. QTP操作txt文档

    QTP可以在txt文件(文本文件中读取数据) 首先创造一个文档对象 set fso = createObject("scripting.filesystemobject") 然后用 ...

  3. 提取一个txt 文档中含指定字符串的所有行

    将一个txt 文档中含指定字符串内容的所有行提取出来并保存至新的txt文档中 例如,要提取 1.txt 中所有包含”aaa” 的行的内容 只需在此文件夹中新建一个bat文件,输入以下代码,双击运行,便 ...

  4. Java 将 List 里面的内容写入桌面的 txt 文档

    文件内容: /** * 将 list 写入文件中 */ import java.io.BufferedWriter; import java.io.File; import java.io.FileW ...

  5. 编写Java程序,在硬盘中选取一个 txt 文件,读取该文档的内容后,追加一段文字“[ 来自新华社 ]”,保存到一个新的 txt 文件内

    查看本章节 查看作业目录 需求说明: 在硬盘中选取一个 txt 文件,读取该文档的内容后,追加一段文字"[ 来自新华社 ]",保存到一个新的 txt 文件内 实现思路: 创建 Sa ...

  6. C# 将内容写入txt文档

    <1>  FileStream fs = new FileStream(@"D:\text.txt", FileMode.Append); StreamWriter s ...

  7. 使用DOM4J解析XML文档,以及使用XPath提取XML文档

    使用DOM4J解析XML文档 需要首先下载DOM4J工具包.这是个第三方工具包 在使用DOM4J解析的时候需要导入 DOM4J的JAR包 下载DOM4J工具包->在MyEclipse中新建lib ...

  8. 使用Java POI来选择提取Word文档中的表格信息

    通过使用Java POI来提取Word(1992)文档中的表格信息,其中POI支持不同的ms文档类型,在具体操作中需要注意.本文主要是通过POI来提取微软2003文档中的表格信息,具体code如下(事 ...

  9. 将txt文档按行分割

    昨天遇到了一个需求,需要将txt文档按行分割,并指定了行数, 最近在用python,就在网上搜了一下,在参考了http://blog.csdn.net/zhang_red/article/detail ...

随机推荐

  1. spring事务-说说Propagation及其实现原理

    前言 spring目前已是java开发的一个事实标准,这得益于它的便利.功能齐全.容易上手等特性.在开发过程当中,操作DB是非常常见的操作,而涉及到db,就会涉及到事务.事务在平时的开发过程当中,就算 ...

  2. laravel 添加自定义类 全局自定义方法 自定义常量

    添加自定义类 https://blog.csdn.net/suchfool/article/details/38758367 https://blog.csdn.net/liukai6/article ...

  3. 差分IO标准

    差分标准 和单端IO不同的是,差分电平使用两根信号线来传达信号,这两根信号线在传输过程中如果遇到同样的噪声源(共模噪声)干扰,在接收端,这样的共模噪声会在两个信号相减时消除,这样并不会给接收电平造成影 ...

  4. iphone配置实用工具iPhone Configuration Utility

    下载地址 http://support.apple.com/kb/DL1466 安装完毕后,在设备->控制台,可以很方便看到报错信息

  5. Mysql 不存在则插入,存在则更新

    )) BEGIN ) ; END 开始写了一大堆的代码来实现,原来还有这种方法,惊讶~~~ 如果不存在,就插入一条数据:如果存在,更新某个字段. on duplicate key update: my ...

  6. C#高级参数ref的使用

    ref关键字用于将方法内的变量改变后带出方法外.具体我们通过例子来说明: 例子中,将变量n1和n2交换了.如果没有加ref参数,由于没有swadDemo()方法没有返回值,调用后,n1和n2是不会交换 ...

  7. python笔记--4--面向对象

    面向对象 Python中对象的概念很广泛,Python中的一切内容都可以称为对象,除了数字.字符串.列表.元组.字典.集合.range对象.zip对象等等,函数也是对象,类也是对象. 在Python中 ...

  8. JS 中的数组遍历方式效率比较

    JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比 第一种:普通for循环 代码如下: ; j < ...

  9. Spring 第一天课程

    一. 面试题部分 1. 什么是IOC?什么是DI?他们有什么区别? 答案: IOC,即控制反转.是指将原来程序中自己创建实现类对象的控制权反转到IOC容器中. IOC的别名:依赖注入(DI),DI 是 ...

  10. gcc 升级方法

    Want GCC 4.8 with c++11 complete feature? Well here’s how to install it in Ubuntu 12.04, Ubuntu 13.0 ...