条件: 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 |
|