EOF Function

Named Arguments

No

Syntax

EOF(filenumber)

filenumber

Use: Required

Data: Integer

Any valid file number.

Return Value

An integer containing –1 (True), or (False).

Description

Returns an integer evaluating to True (–1) when the end of a file has been reached; until the end of the file is reached, EOF returns False (0).

Rules at a Glance

  • filenumber must be a valid number used in the Open statement to open either a random or sequential file.

  • If you have opened the file using either random or binary access, a Get statement that can't read a complete record (i.e., an attempt to access a record past the last record in the file) causes EOF to return True.

Example

iFile = FreeFile
Open sFilename for Input as #iFile
Do While Not EOF(iFile)
   LineInput #iFile, sDataLine
   ...
Loop
Close #iFile

Programming Tips and Gotchas

  • EOF allows you to test whether the end of a file has been reached without generating an error.

  • Because EOF dates back to the times when VB didn't support an intrinsic Boolean data type, the function uses an integer data type to hold the and –1 False and True values.

  • Because you always write data to sequential files at the end of the file, the file marker is always at the end of the file, and EOF therefore always returns True when testing files opened with their modes set equal to either output or append.

  • As Visual Basic is continually enhanced with new functions and new objects, there are more efficient and elegant alternatives to some of the VB language elements ...

Get VB & VBA in a Nutshell: The Language now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.