determining end of file

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • cj

    #1

    determining end of file

    I'm reading a file line by line using

    line = StreamReader.Re adLine

    and normally I

    Do While Not line = Nothing

    But, this file has a lot of blank lines. How do I determine if I'm at
    the end of the file when there are lots of blank lines in the file?
  • GhostInAK

    #2
    Re: determining end of file

    Hello cj,

    a blank line should have a value of string.empty, the EOF should have a value
    of Nothing.

    -Boo
    I'm reading a file line by line using
    >
    line = StreamReader.Re adLine
    >
    and normally I
    >
    Do While Not line = Nothing
    >
    But, this file has a lot of blank lines. How do I determine if I'm at
    the end of the file when there are lots of blank lines in the file?
    >

    Comment

    • Herfried K. Wagner [MVP]

      #3
      Re: determining end of file

      "cj" <cj@nospam.nosp amschrieb:
      I'm reading a file line by line using
      >
      line = StreamReader.Re adLine
      >
      and normally I
      >
      Do While Not line = Nothing
      >
      But, this file has a lot of blank lines. How do I determine if I'm at
      the end of the file when there are lots of blank lines in the file?
      Use 'Do While Line IsNot Nothing' or 'Do While Not Line Is Nothing'.

      --
      M S Herfried K. Wagner
      M V P <URL:http://dotnet.mvps.org/>
      V B <URL:http://dotnet.mvps.org/dotnet/faqs/>

      Comment

      • iwdu15

        #4
        Re: determining end of file

        you could also do

        Dim sr As New StreamReader(.. .)

        While sr.Peek -1

        SomeStringVaria ble = sr.ReadLine()

        End While

        --
        -iwdu15

        Comment

        • Walter Wang [MSFT]

          #5
          RE: determining end of file

          Hi cj,

          It's because Visual Basic runtime usually evaluates Nothing as an empty
          string (""). Following code prints "True":

          Dim s As string = ""
          Console.WriteLi ne(s = Nothing)

          Since StreamReader.Re adLine() returns null when the file reaches to end, we
          need to use Is or IsNot operator to determine whether or not an object is
          null.

          For more information, please refer to following MSDN Library:

          #Is Operator (Visual Basic)
          http://msdn2.microsoft.com/en-us/library/kb136x1y.aspx

          #IsNot Operator
          http://msdn2.microsoft.com/en-us/library/t3bat82c.aspx

          #Nothing and Strings in Visual Basic
          http://msdn2.microsoft.com/en-us/library/ms233957.aspx

          Please reply to let us know whether or not you need further information.
          Thank you.

          Sincerely,
          Walter Wang (wawang@online. microsoft.com, remove 'online.')
          Microsoft Online Community Support

          =============== =============== =============== =====
          Get notification to my posts through email? Please refer to
          http://msdn.microsoft.com/subscripti...ult.aspx#notif
          ications. If you are using Outlook Express, please make sure you clear the
          check box "Tools/Options/Read: Get 300 headers at a time" to see your reply
          promptly.

          Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
          where an initial response from the community or a Microsoft Support
          Engineer within 1 business day is acceptable. Please note that each follow
          up response may take approximately 2 business days as the support
          professional working with you may need further investigation to reach the
          most efficient resolution. The offering is not appropriate for situations
          that require urgent, real-time or phone-based interactions or complex
          project analysis and dump analysis issues. Issues of this nature are best
          handled working with a dedicated Microsoft Support Engineer by contacting
          Microsoft Customer Support Services (CSS) at
          http://msdn.microsoft.com/subscripti...t/default.aspx.
          =============== =============== =============== =====

          This posting is provided "AS IS" with no warranties, and confers no rights.

          Comment

          • cj

            #6
            Re: determining end of file

            So I thought. However apparently "" = nothing but "" isnot nothing. I
            still don't quite get it but Herfried was right on his suggestion
            although w/o Walters' explanation I'd have no clue why.

            GhostInAK wrote:
            Hello cj,
            >
            a blank line should have a value of string.empty, the EOF should have a
            value of Nothing.
            >
            -Boo
            >
            >I'm reading a file line by line using
            >>
            >line = StreamReader.Re adLine
            >>
            >and normally I
            >>
            >Do While Not line = Nothing
            >>
            >But, this file has a lot of blank lines. How do I determine if I'm at
            >the end of the file when there are lots of blank lines in the file?
            >>
            >
            >

            Comment

            • cj

              #7
              Re: determining end of file

              This is confusing. "" = Nothing but "" IsNot Nothing.

              So what we're saying is "" is equivalent to Nothing but it is not the
              same thing as Nothing?


              Walter Wang [MSFT] wrote:
              Hi cj,
              >
              It's because Visual Basic runtime usually evaluates Nothing as an empty
              string (""). Following code prints "True":
              >
              Dim s As string = ""
              Console.WriteLi ne(s = Nothing)
              >
              Since StreamReader.Re adLine() returns null when the file reaches to end, we
              need to use Is or IsNot operator to determine whether or not an object is
              null.
              >
              For more information, please refer to following MSDN Library:
              >
              #Is Operator (Visual Basic)
              http://msdn2.microsoft.com/en-us/library/kb136x1y.aspx
              >
              #IsNot Operator
              http://msdn2.microsoft.com/en-us/library/t3bat82c.aspx
              >
              #Nothing and Strings in Visual Basic
              http://msdn2.microsoft.com/en-us/library/ms233957.aspx
              >
              Please reply to let us know whether or not you need further information.
              Thank you.
              >
              Sincerely,
              Walter Wang (wawang@online. microsoft.com, remove 'online.')
              Microsoft Online Community Support
              >
              =============== =============== =============== =====
              Get notification to my posts through email? Please refer to
              http://msdn.microsoft.com/subscripti...ult.aspx#notif
              ications. If you are using Outlook Express, please make sure you clear the
              check box "Tools/Options/Read: Get 300 headers at a time" to see your reply
              promptly.
              >
              Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
              where an initial response from the community or a Microsoft Support
              Engineer within 1 business day is acceptable. Please note that each follow
              up response may take approximately 2 business days as the support
              professional working with you may need further investigation to reach the
              most efficient resolution. The offering is not appropriate for situations
              that require urgent, real-time or phone-based interactions or complex
              project analysis and dump analysis issues. Issues of this nature are best
              handled working with a dedicated Microsoft Support Engineer by contacting
              Microsoft Customer Support Services (CSS) at
              http://msdn.microsoft.com/subscripti...t/default.aspx.
              =============== =============== =============== =====
              >
              This posting is provided "AS IS" with no warranties, and confers no rights.
              >

              Comment

              • cj

                #8
                Re: determining end of file

                Thanks for the input but right now I feel more comfortable the other way.

                iwdu15 wrote:
                you could also do
                >
                Dim sr As New StreamReader(.. .)
                >
                While sr.Peek -1
                >
                SomeStringVaria ble = sr.ReadLine()
                >
                End While
                >

                Comment

                • cj

                  #9
                  Re: determining end of file

                  Thanks that works, you might want to see my reply to Walter.

                  Herfried K. Wagner [MVP] wrote:
                  "cj" <cj@nospam.nosp amschrieb:
                  >I'm reading a file line by line using
                  >>
                  >line = StreamReader.Re adLine
                  >>
                  >and normally I
                  >>
                  >Do While Not line = Nothing
                  >>
                  >But, this file has a lot of blank lines. How do I determine if I'm at
                  >the end of the file when there are lots of blank lines in the file?
                  >
                  Use 'Do While Line IsNot Nothing' or 'Do While Not Line Is Nothing'.
                  >

                  Comment

                  • Walter Wang [MSFT]

                    #10
                    Re: determining end of file

                    Hi cj,

                    I understand your concerns.

                    As a rule of thumb, you need to remember to use Is or IsNot to compare
                    object references. Normally we don't use "= Nothing" to check for null
                    reference.

                    Regards,
                    Walter Wang (wawang@online. microsoft.com, remove 'online.')
                    Microsoft Online Community Support

                    =============== =============== =============== =====
                    When responding to posts, please "Reply to Group" via your newsreader so
                    that others may learn and benefit from your issue.
                    =============== =============== =============== =====

                    This posting is provided "AS IS" with no warranties, and confers no rights.

                    Comment

                    Working...