怎样在VB中设计程序实现txt文件中的查找与替换功能,怎样编写代码,求救高手,希望有注解,Thanks~

怎样在VB中设计程序实现txt文件中的查找与替换功能,怎样编写代码,求救高手,希望有注解,Thanks~

1、窗体布局
新建一个工程,在Form1上放置两个命令按钮cmdChooseFiles、cmdOk,Caption属性分别为"选择文件"和"开始寻找替换";放置两个标签,Caption分别为"搜索字符串"和"替换字符串";放置两个文本框txtSearch和txtReplace;放置一个RichTextBox控件和一个CommonDialog控件,控件名取缺省名即可。

2、程序代码
为Form1添加如下代码:
DimFileNamesAsString‘文件名列表数组,下标从1开始
DimFileCountAsLong‘文件名列表中的文件名总数
PrivateSubcmdChooseFiles_Click
DimiAsLong,yAsLong,DimzAsLong
WithCommonDialog1
.Flags=cdlOFNAllowMultiselect‘允许选择多个文件
.Filter="HTMFiles.HTM"‘只显示HTM文件,可根据需要改变
.MaxFileSize=10000‘FileName属性的最大长度,可根据需要改变
.ShowOpen‘显示"打开文件"对话框
If.filename=""Then
‘如选择了"取消"按钮,则将FileCount置为0并返回
FileCount=0
ExitSub
EndIf
.filename=.filename&""‘在FileName最后添加一个空格,以便处理
‘以下从FileName属性中逐个读取文件名,并放入FileNames数组中
z=1
y=0
Fori=1ToLen
i=InStr
Ifi=0Then
ExitFor
EndIf
ReDimPreserveFileNames
FileNames=Mid
Ify>0Then‘如有多个文件,则在每个文件名前加上完整的路径
FileNames=FileNames&"“"&FileNames
EndIf
z=i+1
y=y+1
Nexti
Ify=1Then‘如FileName只包含一个文件名,则将其赋给FileName
‘并将FileCount置为1
ReDimPreserveFileNames
FileNames=FileNames
FileCount=1
Else‘否则根据文件数确定FileCount的值
FileCount=y-1
EndIf
EndWith
EndSub
PrivateSubcmdOk_Click
DimiAsLong
DimSearchStringAsString‘搜索字符串
DimReplaceStringAsString‘替换字符串
DimStartPositionAsLong‘搜索字符串在文件中出现的位置
DimSearchLengthAsLong‘搜索字符串长度
SearchString=Trim
ReplaceString=Trim
SearchLength=Len
WithRichTextBox1
Fori=1ToFileCount‘以下依次处理FileNames数组中的文件
RichTextBox1.LoadFileFileNames,rtfText‘读入文件
StartPosition=.Find‘寻找搜索字符串
IfStartPosition<>-1Then‘如果找到,则执行替换操作
.SelStart=StartPosition
.SelLength=SearchLength
.SelText=ReplaceString
.SaveFileFileNames,rtfText‘写入文件
EndIf
Nexti
EndWith
MsgBox"转换结束!",vbExclamation
EndSub
3、程序说明
(1)运行程序后,单击"选择文件"按钮选择文件,并分别输入搜索和替换字符串,然后单击"开始寻找替换"按钮,即可自动进行工作。
(2)由于篇幅有限,程序没有进行任何错误处理,实际使用前,应加入必要的错误处理代码,如:在未选中文件前、未输入搜索和替换字符串前使"开始寻找替换"按钮失效;在某个文件中没有找到搜索字符串时给予提示并跳过该文件等。
(3)可在程序中加入进度指示条(可使用ProgressBar控件),使界面更加友好。
(4)程序对每个文件仅替换第一个匹配的字符串,如需要替换所有匹配的字符串,只需加入简单几句代码即可实现。
(5)本程序用VisualBasic5.0编写,在Pwin95、Pwin97环境下运行正常。
温馨提示:答案为网友推荐,仅供参考
相似回答