分享

VB 如何删除 txt 文件中指定字符

 hdzgx 2017-10-16
条件:
1、一个文件夹下有很多“.txt”文件
2、每个文件中都有一句或几句“abc=1234;”,其中“1234”每个地方都确定是几位数字

要求:
将每个文件中的“abc=???;”删除,保存。
***********************************************************
Option Explicit
Private Sub Command1_Click()
Dim Arr() As String
Dim a As Boolean, i As Long
Dim FileNumber, Str
Dim Sum As Long '替换次数
Dim Str1 As String '要替换的字符
Dim A1 As Long '需要替换的字符出现的位置
a = SearchFiles("E:\新建文件夹 (2)\", "*.txt", Arr) '调用函数获取目录下所有txt文件 注意目录后面有斜杠!!!

If a Then '如果找到文件
For i = 0 To UBound(Arr) '循环更改读取到的文件
FileNumber = FreeFile
Open Arr(i) For Input As #FileNumber '读取文件内容
Str = StrConv(InputB(LOF(FileNumber), 1), vbUnicode)
Close #FileNumber
A1 = InStr(Str, "abc=") '查找
If A1 <> 0 Then '如果找到
Str1 = Mid(Str, A1, 9) '截取A1开始的九个字符
Sum = Sum + 1 '统计替换的次数数
Str = Replace(Str, Str1, "") '替换截取到的字符
FileNumber = FreeFile
Open Arr(i) For Output As #FileNumber '替换完成 重新写入
Print #FileNumber, Str
Close #FileNumber
End If
Next
MsgBox " 替换完成 " & vbCrLf _
& "共找到 " & UBound(Arr) - 1 & " 个文件" & vbCrLf _
& "共替换 " & Sum & " 个文件"
Else
MsgBox " 该目录下没有 TXT 文件! "
End If
End Sub

Function SearchFiles(Path As String, FileType As String, ByRef Arr() As String) As Boolean
Dim a, b, c As Long
Dim sPath As String
sPath = Dir(Path & FileType) '查找第一个文件
Do While Len(sPath) '循环到没有文件为止
ReDim Preserve Arr(0 To a)
Arr(a) = Path & sPath '将文件目录和文件名组合,并存放到数组中
SearchFiles = True
a = a + 1
sPath = Dir() '查找下一个文件
DoEvents '让出控制权
Loop
End Function

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多