VB删除文本中的特定内容

例如1.txt里有这些文本:
#test start
123
456
abcd
#test end

789
abcdefg
qwerty
uiop

那么怎么删掉从#test start到#test end里的内容呢?

注:#test start和#test end两行也得删

文本文件是不能删除里面的数据的,只能先读出,处理好了以后,再写入,覆盖原文件数据。
随机文件是可以删除里面的某一条数据,但是也不会压缩文件长度,如果空数据过多,要压缩,还要吧他读出,去除空数据,再写入另一个文件,然后删除原文件,再把新文件改名。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-13
Private Sub Command1_Click()
Dim a() As Byte, Fn As String, s As String
Dim i, j
Fn = App.Path & "\1.txt"
If Dir(Fn) = "" Then Exit Sub
'读取文本内容
ReDim a(FileLen(Fn) - 1)
Open Fn For Binary As #1
Get #1, , a
Close #1
'删除指定内容
s = StrConv(a, vbUnicode)
i = InStr(1, s, "#test start", vbTextCompare)
j = InStr(i, s, "#test end", vbTextCompare)
j = InStr(j, s, vbNewLine, vbTextCompare)
s = Left(s, i - 1) & Mid(s, j + 2)
a = StrConv(s, vbFromUnicode)

'把删除后的内容重新写入文件
Kill Fn
Open Fn For Binary As #1
Put #1, , a
Close #1

End Sub本回答被提问者采纳
相似回答