determining end of file

  • Thread starter Thread starter cj
  • Start date Start date
C

cj

I'm reading a file line by line using

line = StreamReader.ReadLine

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?
 
Hello cj,

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

-Boo
 
cj said:
I'm reading a file line by line using

line = StreamReader.ReadLine

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'.
 
you could also do

Dim sr As New StreamReader(...)

While sr.Peek > -1

SomeStringVariable = sr.ReadLine()

End While
 
Hi cj,

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

Dim s As string = ""
Console.WriteLine(s = Nothing)

Since StreamReader.ReadLine() 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 ([email protected], remove 'online.')
Microsoft Online Community Support

==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.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/subscriptions/support/default.aspx.
==================================================

This posting is provided "AS IS" with no warranties, and confers no rights.
 
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.
 
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?
 
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 ([email protected], 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.
 
Back
Top