Home > Enterprise >  How to delete a line from a txt after reading it
How to delete a line from a txt after reading it

Time:09-03

I need to delete a line from a txt after I read it. To read line by line I use

Dim srdFile As IO.StreamReader

       srdFile = New IO.StreamReader("shazam.txt")
       Do Until srdFile.Peek = -1
           strLine = srdFile.ReadLine()

           ... how to delete the line here..
       ' here i call another function 
       Loop

       srdFile.Close()

How can I delete it the lines after they are being read? Also how can I save the file everytime i delete a line?. Thanks

CodePudding user response:

That's not a good idea. You would have to delete the first line after reading and move all lines to the top afterwards, so basically you had to rewrite the whole file in each line. Thats not what you want. But you could process each line and determine which could not be processed successfuly. Then you can clear the file and write the remaing lines into that file:

Dim failResults = From line In IO.File.ReadLines(path)
                  Select result = (Line:=line, ProcessResult:=ProcessLine(line))
                  Where result.ProcessResult = False
                  Select result.Line
Dim remainingLines = failResults.ToList()
IO.File.WriteAllText(path, "")
IO.File.WriteAllLines(path, remainingLines)

Here's a method which you have to fill with your logic:

Private Function ProcessLine(line As String) As Boolean
    ' do something with this line and return if it was successful, so can be deleted
    Return True
End Function
  • Related