示"打开文件"对话框
If .filename = "" Then
''如选择了"取消"按钮,则将FileCount置为0并返回
FileCount = 0
Exit Sub
End If
.filename = .filename & " " ''在FileName最后添加一个空格,以便处理
''以下从FileName属性中逐个读取文件名,并放入FileNames数组中
z = 1
y = 0
For i = 1 To Len(.filename)
i = InStr(z, .filename, " ")
If i = 0 Then
Exit For
End If
ReDim Preserve FileNames(y)
FileNames(y) = Mid(.filename, z, i - z)
If y > 0 Then ''如有多个文件,则在每个文件名前加上完整的路径
FileNames(y) = FileNames(0) & "\" & FileNames(y)
End If
z = i + 1
y = y + 1
Next i
If y = 1 Then ''如FileName只包含一个文件名,则将其赋给FileName(1)
''并将FileCount置为1
ReDim Preserve FileNames(1)
FileNames(1) = FileNames(0)
FileCount = 1
Else ''否则根据文件数确定FileCount的值
FileCount = y - 1
End If
End With
End Sub
Private Sub cmdOk_Click()
Dim i As Long
Dim SearchString As String ''搜索字符串
Dim ReplaceString As String ''替换字符串
Dim StartPosition As Long ''搜索字符串在文件中出现的位置
Dim SearchLength As Long ''搜索字符串长度
SearchString = Trim(txtSearch)
ReplaceString = Trim(txtReplace)
SearchLength = Len(SearchString)
With RichTextBox1
For i = 1 To FileCount ''以下依次处理FileNames数组中的文件
RichTextBox1.LoadFile FileNames(i), rtfText ''读入文件
StartPosition = .Find(SearchString) ''寻找搜索字符串
If StartPosition <> -1 Then ''如果找到,则执行替换操作
.SelStart = StartPosition
.SelLength = SearchLength
.SelText = ReplaceString
.SaveFile FileNames(i), rtfText ''写入文件
End If
Next i
End With
MsgBox "转换结束!", vbExclamation
End Sub
3、
程序说明
(1)运行
程序后,单击"选择文件"按钮选择文件,并分别输入搜索和替换字符串,然后单击"开始寻找替换"按钮,即可自动进行工作。
(2)由于篇幅有限,
程序没有进行任何错误处理,实际使用前,应加入必要的错误处理代码,如:在未选中文件前、未输入搜索和替换字符串前使"开始寻找替换"按钮失效;在某个文件中没有找到搜索字符串时给予提示并跳过该文件等。
(3)可在
程序中加入进度指示条(可使用ProgressBar控件),使界面更加友好。
(4)
程序对每个文件仅替换第一个匹配的字符串,如需要替换所有匹配的字符串,只需加入简单几句代码即可实现。
(5)本程序用Visual Basic 5.0编写,在Pwin95、Pwin97环境下运行正常。