background image

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