今天有浏览论坛时,又看见一篇是读取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. 让32位应用程序不再为2G内存限制苦恼

    最近在做个程序,虽然是小型程序,但是使用的内存量却很大,动辄达到10G.在64位系统上可以轻松实现,无奈我是基于32位的系统进行开发,程序还没跑起来就已经被终止了.      试过很多办法,包括文件内 ...

  2. C++字符集问题终极分析(可解决乱码问题)

    最近研究vc,windows的东西真是很傻瓜,啥都给你做好,有个好处就是开发方便了. 有个弊端就是完全按微软的一套进行,规则都是它定的,你得知道它的很多api, 开发出来的代码效率不高,不过却可以比较 ...

  3. java代码从键盘输入执行次数,数,然后排序

    总结:实现从键盘控制执行次数,困惑我很久,直到昨日在提问时,网友说通过循环是肯定可以的所以顿悟了 package com.c2; import java.util.Arrays; import jav ...

  4. 校赛热身 Problem C. Sometimes Naive (状压dp)

    题解: 列举每一种3的倍数的组合,开始先求出3条边的可行解,则 六条边的可行解可以由两个三条边得来. 详见代码解析 #include<bits/stdc++.h> using namesp ...

  5. MySQL 备份脚本--mysqldump在slave 上进行备份

    MySQL 备份脚本--mysqldump在slave 上进行备份 使用mysqldump在slave上进行备份,建议使用stop slave sql_thread,start slave sql_t ...

  6. c++ 端口扫描程序

    第一.原理 端口扫描的原理很简单,就是建立socket通信,切换不通端口,通过connect函数,如果成功则代表端口开发者,否则端口关闭. 所有需要多socket程序熟悉,本内容是在window环境下 ...

  7. SignalR推送服务在Android的实现 SignalA

    SignalA是老外写的用于实现.net端推送消息至安卓端的实现,支持版本为android 2.3或以上,由于我的版本最低是2.2,所以只有把源码下下来自己改,如果你觉得太多了可自己编译成jar引用, ...

  8. DataGrid 单元格输入验证 由ValidatingEditor事件完成

    private void gdv_reguline_ValidatingEditor(object sender, DevExpress.XtraEditors.Controls.BaseContai ...

  9. 10-26C#基础回顾、汇总(函数重点)

    第一部分==进制转换 重点记忆: 1.任意进制转十进制 按权展开法 p代表进制数,a/b/c...m分别代表进制数p从右往左第1位--第(n-1)位的数 公式:a*p0+b*p1+c*p2+..... ...

  10. ios中的三种弹框《转》

    目前为止,已经知道3种IOS弹框: 1.系统弹框-底部弹框 UIActionSheet  (1)用法:处理用户非常危险的操作,比如注销系统等 (2)举例: UIActionSheet *sheet = ...