用
VB
进行文本文件的再处理
---- 越来越多的人开始认识到 Internet 这一信息资源的巨大宝库,但是把信息从网上下载下来后,繁杂多样
的文件格式却给整理、使用带来相当大的麻烦。有的由于系统平台的变化,甚至显示出来是一团乱糟糟东西。那
么要想更好、更方便地利用网络资源,一个得力的文本文件处理工具就显得非常必要。如果四处去寻找一个这样
的工具,不仅不容易,找到后可能并不符合我们的要求,但是如果你有
VB,那么为什么不自己开发一个这样的工
具程序呢?相信我,这并不困难,只要你已经对
VB
有所了解,一个方便实用的小工具已经在等着你了!
---- 先来分析一下这个程序要完成的主要任务吧,象这样的文本处理,可以归纳为两种形式,就是替换和
清除,如果把清除看成是替换成空的话,那么唯一个任务就是替换了。就替换面言,可能会有以下几种形式:
将一段文字替换成另一段
将某两个特殊标识符之间的文字替换成另外一些文字
将某两个特殊标识符之间的文字按照某种规律进行转换
---- 搞清这几个任务,我们就可以着手编程了。一个好的程序员,不应每次都是从零做起,平常一些基础
模块的积累,可以增加我们制做大程序的信心。下面我先对程序中用到的我的基础库中的内容进行一下介绍,然
后再解决每一个具体问题。
----
一、准备过程
---- 1、字符串处理函数(StrHead
)
---- 用 VB 来实现这个程序,首先要解决的是如何方便地进行字符串处理,VB 中原有的函数 InStr 和
Mid,使用起来并不方便,我利用这两个函数编写出一个新的函数:StrHead,该函数根据指定的断点字符将字
符串截断,断点前的字符串被返回,后面部分保留在原字符串中,该函数可以完成大部分字符串操作。函数代码
如下:
Public Function StrHead(ss As String, ByVal c As String) As String
'如果字符串 ss 中包含字符串 c,就返回 strHead 的值为 ss 中 c 前的字符串,
'将 ss 的值改为原 ss 中 c 后面的字符串,
'如果字符串 c 不在 ss 中,则返回 strhead 的值为 ss,再将原 ss 置空.
'注:byVal 与 byRef 的作用.
Dim i As Long
i = InStr(ss, c)
If i > 0 Then
StrHead = Mid(ss, 1, i - 1)
ss = Mid(ss, i + Len(c))
Else
StrHead = ss
ss = ""
End If
End Function
---- 2、文本文件类(TextFile
)
---- 程序中涉及到很多文件操作,为了方便,可以先将对文件操作的过程封装到一个类中,这样不仅可以
提高编程效率,还可以大大减少出错的机会。因为本课题主要是面对文本文件的,这样我们只编写一个处理文本
文件读写类(
TextFile
)就可以了,该类的几个主要功能函数列在下面:
' 文本文件类(TextFile.cls)
Option Explicit
Dim FileNum As Integer
' 打开文件用于写
Public Function OpenWrit(fn As String) As Boolean
On Error GoTo OWErr