I am reading a text file line by line using StreamReader.Readline(). After reading a line i have to check whether some fields of the line which is read are present in the rest of the file or not.

What i am doing is that after reading a line from the file i am passing the streamreader to check whether there are multiple entries. i am trying to use line.Length() to get the length of line, so using this length i can go back to the line
my code:

Dim pos as Long

   sr = File.OpenText(filepath)

   While sr.Peek() <> -1

        Dim lineRead As String = sr.ReadLine()

        Dim res As Boolean = CheckIfMultipleEntries(sr)

        pos = -pos

        If res Then

           // save data from those lines and skip these lines

         p += lineRead.Length()
       End If

     pos = pos + p   // go to the line which is after the lines skiped
     sr.BaseStream.Seek(pos, SeekOrigin.Current)

  End While

Function CheckIfMultipleEntries(ByVal sr1 As StreamReader) As Boolean

    pos = 0

    While sr1.Peek() <> -1

        Dim l As String = sr1.ReadLine()

        //check if line is present in the rest of the file

        pos += l.Length()

    End While

 End Function


my problem is that it is not giving me the expected line or it is skipping some part of the line.
any suggestions? how can i return back to my line?

5 Years
Discussion Span
Last Post by san-biegwenja
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.