求替换文本文件中的字符串的vb代码
2个回答
展开全部
你可以参照下面的例子
Dim FileNames() As String '文件名列表数组,下标从1开始
Dim FileCount As Long '文件名列表中的文件名总数
Private Sub cmdChooseFiles_Click()
Dim i As Long,y As Long,Dim z As Long
With CommonDialog1
.Flags = cdlOFNAllowMultiselect '允许选择多个文件
.Filter = "TEXT Files|*.TXT " '只显示TXT文件,可根据需要改变
.MaxFileSize = 10000 'FileName属性的最大长度,可根据需要改变
.ShowOpen '显示 "打开文件 "对话框
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
Dim FileNames() As String '文件名列表数组,下标从1开始
Dim FileCount As Long '文件名列表中的文件名总数
Private Sub cmdChooseFiles_Click()
Dim i As Long,y As Long,Dim z As Long
With CommonDialog1
.Flags = cdlOFNAllowMultiselect '允许选择多个文件
.Filter = "TEXT Files|*.TXT " '只显示TXT文件,可根据需要改变
.MaxFileSize = 10000 'FileName属性的最大长度,可根据需要改变
.ShowOpen '显示 "打开文件 "对话框
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
展开全部
InStr([start, ]string1, string2[, compare])
instr函数
返回指定一字符串在另一字符串中最先出现的位置。在字符串string1中,从start开始找string2,省略start时从string1头开始找。找不到时,函数值为0。
示例
本示例使用 InStr 函数来查找某字符串在另一个字符串中首次出现的位置。
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' 被搜索的字符串。
SearchChar = "P" ' 要查找字符串 "P"。
' 从第四个字符开始,以文本比较的方式找起。返回值为 6(小写 p)。
' 小写 p 和大写 P 在文本比较下是一样的。
MyPos = Instr(4, SearchString, SearchChar, 1)
' 从第一个字符开使,以二进制比较的方式找起。返回值为 9(大写 P)。
' 小写 p 和大写 P 在二进制比较下是不一样的。
MyPos = Instr(1, SearchString, SearchChar, 0)
' 缺省的比对方式为二进制比较(最后一个参数可省略)。
MyPos = Instr(SearchString, SearchChar) ' 返回 9。
MyPos = Instr(1, SearchString, "W") ' 返回 0。
如果想在字符串"cvbnm36def36789"找到字符串"36"的第一次出现位置,在asp语句中可以写成:
MyPos=InStr("cvbnm36def36789","36") 结果等于6
instr函数
返回指定一字符串在另一字符串中最先出现的位置。在字符串string1中,从start开始找string2,省略start时从string1头开始找。找不到时,函数值为0。
示例
本示例使用 InStr 函数来查找某字符串在另一个字符串中首次出现的位置。
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' 被搜索的字符串。
SearchChar = "P" ' 要查找字符串 "P"。
' 从第四个字符开始,以文本比较的方式找起。返回值为 6(小写 p)。
' 小写 p 和大写 P 在文本比较下是一样的。
MyPos = Instr(4, SearchString, SearchChar, 1)
' 从第一个字符开使,以二进制比较的方式找起。返回值为 9(大写 P)。
' 小写 p 和大写 P 在二进制比较下是不一样的。
MyPos = Instr(1, SearchString, SearchChar, 0)
' 缺省的比对方式为二进制比较(最后一个参数可省略)。
MyPos = Instr(SearchString, SearchChar) ' 返回 9。
MyPos = Instr(1, SearchString, "W") ' 返回 0。
如果想在字符串"cvbnm36def36789"找到字符串"36"的第一次出现位置,在asp语句中可以写成:
MyPos=InStr("cvbnm36def36789","36") 结果等于6
参考资料: http://baike.baidu.com/view/1320607.htm
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询