我有一个包含此示例数据的文本文件
绑架测试| 1
芯片测试| 2
帽匠测试| 3
邪恶的测试| 4
我想知道如何循环查找用户并删除该行。
这是我到目前为止所做的:
Public Sub RemoveMember(member As String)
Dim u As String, strdata() As String
Open (App.Path & "\Membership.txt") For input As #1
Do
input #1, u
strdata = Split(u, "|")
If strdata(0) = member Then
'figure out a way to remove this line from the text file'
End If
Loop Until EOF(1)
Close #1
End Sub
答案 0 :(得分:3)
我会说:
Stefan的方法可能更快,但如果文件变得非常大,将使用大量内存。
我不熟悉VB的原生文件方法。使用FileSystemObject(参考Microsoft Scripting Host),您将获得:
Dim clsOriginalFile as TextStream
Dim clsNewFile as TextStream
Dim FSO as New FileSystemObject
Dim varLine as Variant
Dim strLine as String
set clsOriginalFile=FSO.OpenTextFile "members.txt", ForReading
set clsNewFile =FSO.OpentTextFile "temp.txt", ForWriting, True
Do While Not clsOriginalFile.AtEndOfStream
varLine = clsOriginalFile.ReadLine
strLine=varLine
If instr(strLine,member)=0 Then
clsNewFile.WriteLine strLine
End If
Loop
clsOriginalFile.Close
clsNewFile.Close
FSO.DeleteFile("members.txt")
FSO.MoveFile("temp.txt","members.txt")
在没有IDE帮助的情况下编写,因此代码中可能会出现一些拼写错误。