LINE INPUT (file statement)

From QB64 Phoenix Edition Wiki
Revision as of 22:35, 11 February 2023 by RhoSigma (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The LINE INPUT # file statement reads an entire line from a text file into a string variable.


Syntax

LINE INPUT #fileNumber&, stringVariable$


Parameters

  • fileNumber& is the INTEGER number of the file previously opened with the OPEN statement.
  • stringVariable$ holds the text line read from the file.


Description

  • Reads a file using the fileNumber& OPENed in the INPUT (file mode) or BINARY file mode as one file line text string.
  • NOTE: LINE INPUT will work faster in BINARY mode than in INPUT mode.
    • Using LINE INPUT # in BINARY mode is possible in version 1.000 and up
  • Can be used with EOF to count the number of lines of data (records) in a file using a loop.
  • Use the EOF function to avoid going past the end of a file and creating an error.
  • LINE INPUT # can even retain the original quotation marks in text.
  • Note: QB64 will not remove CHR$(0) from the end of LINE INPUT # string return values like QBasic did.

Errors

  • If an "Input past End of file" error occurs, check for CHR$(26) (end of file character) in the files being read.
  • Warning: files must exist to be opened in INPUT mode. Use _FILEEXISTS to avoid program errors.


Examples

Example: Finding the number of filenames listed in a file to dimension an array to hold them.

REDIM FileArray$(100) 'create dynamic array
SHELL _HIDE "DIR /B *.* > D0S-DATA.INF"
IF _FILEEXISTS("D0S-DATA.INF") THEN
  OPEN "D0S-DATA.INF" FOR INPUT AS #1
  DO UNTIL EOF(1)
    LINE INPUT #1, file$        'read entire text file line
    filecount% = filecount% + 1
  LOOP
  CLOSE #1
END IF
REDIM FileArray$(filecount%)
PRINT filecount%


See also



Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link