怎样在VB中写语言来实现删除文件中的这样几行字?

%55555m30%%342m30%%318m30以上几行字我想删除中间的“M30 % % ”但是不想删除开始的“%”和结尾的“M30” 要怎样写语言!是文本文件! 如:MAC TXT 等格式的!文件大小不固定!但是会很大!
2026年09月25日 13:49
有3个网友回答
网友(1):

我用的是txt文件格式的,假设原始文件为1.txt,修改后的文件为2.txt,2.txt必须存在,为空文件,代码如下:
Private Sub Command1_Click()
Dim msg As String, msg2 As String
Open "C:\Documents and Settings\Administrator\桌面\1.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, msg
If msg <> "m30" Then
msg2 = msg2 & msg & vbCrLf
End If
Loop
Open "C:\Documents and Settings\Administrator\桌面\2.txt" For Output As #2
Print #2, msg2 & "m30"
Close #1
Close #2
End Sub

。。。刚又看了一下题目发现我意思错了,没看到下面的2个百分号。。。但是11点了,我得睡觉了,明天早上起来帮你做,给你提供个思路,一行一行的读取文件1中的每句,将他们都存入数组a()中,然后比较a(i) & a(i+1) & a(i+2)是否为m30%%,如果是将这3项删除,同时重新摆列数组。最后将数组中的值一个一个的写入文件2中

Private Sub Command1_Click()
Dim msg As String, msg2 As String
Open "C:\Documents and Settings\Administrator\桌面\1.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, msg
msg2 = msg2 & msg & vbCrLf
Loop
msg2 = Replace(msg2, "m30" & vbCrLf & "%" & vbCrLf & "%" & vbCrLf, "")
Open "C:\Documents and Settings\Administrator\桌面\2.txt" For Output As #2
Print #2, msg2
Close #1
Close #2
End Sub

网友(2):

Private Sub Command1_Click()
Dim s As String
Open "e:\tmp\123.txt" For Binary As #1
s = Input(LOF(1), #1)
Close #1
s = Replace(s, "m30" & vbCrLf & "%" & vbCrLf & "%" & vbCrLf, "")
Kill "e:\tmp\123.txt"
Open "e:\tmp\123.txt" For Binary As #1
Put #1, , s
Close #1
End Sub

请自己修改文件名:e:\tmp\123.txt

网友(3):

先读取写到变量 ,再把变量中的m30 回车 % 回车% 替换,再写入新文本 ,因为开头的% 后面的 30 并不是 查找的内容 ,所以不会替换
所以楼上的的代码不错,我就不用写的,只是给你解释一下让你能看明白。