Function 如何使用vb编写文本文件中的特定行

Function 如何使用vb编写文本文件中的特定行,function,vb6,text-files,Function,Vb6,Text Files,我有一个包含此示例数据的文本文件 诱拐试验| 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

我有一个包含此示例数据的文本文件

诱拐试验| 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
我想说:

  • 逐行朗读
  • 检查该行是否包含要删除的成员
  • 如果行不存在,请将其写回新文件
  • 读取所有行后,删除原始文件
  • 将新文件重命名为原始文件
Stefan的方法可能更快,但如果文件变得非常大,将使用大量内存

我不熟悉VB的原生文件方法。使用FileSystemObject(参考Microsoft脚本主机),您将获得:

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帮助的情况下编写,因此代码中可能会有一些拼写错误