INPUT (file statement) - mkilgore/QB64pe GitHub Wiki

The INPUT # file or port statement reads sequential data using one variable or a comma separated list of matching variable types.

Syntax

INPUT #fileNumber&, variable1[,]

Parameters

  • fileNumber& is a positive LONG integer value used to OPEN the file FOR INPUT mode.
  • The type of the variable used defines the value or list of values to be returned from the file. Numeric types must match the values returned.
  • As reflected in the syntax you can list a number of variables with different types seperated by a comma and they will hold the values in the file (keep in mind that the information in the file should match the variable types used).

Description

  • The file number can be determined by the programmer or be an unused number returned by the FREEFILE function.
  • Variable types must match the numerical types being read. STRING variables can return unquoted numeric values.
  • Leading or trailing spaces of STRING values must be inside of quotes. WRITE # writes strings inside of quotes automatically. PRINT # removes quotes.
  • INPUT # will read each value until it encounters a comma for the next value in a list.
  • Use the EOF function to avoid reading past the end of a file.
  • Files created by WRITE # usually have the same number of values on each file line. If INPUT reads more or less values, it may read beyond the end of file or return bad data.
  • Use the LINE INPUT (file statement) for files created with PRINT # or PRINT #, USING.
  • INPUT can read Excel CSV files, but beware of unquoted text or numerical values containing commas.

Examples

Example 1: Writes new data to a text file sequentially and reads it back to the program screen.

OPEN filename$ FOR...NEXT OUTPUT AS #1 'opens and clears an existing file or creates new empty file 
WRITE (file statement) #1, x, y, z$ 
CLOSE #1 

PRINT "File created with data. Press a key!" 
K$ = INPUT$(1) 'press a key 

OPEN filename$ FOR (file statement) INPUT (file mode) AS #2 'opens a file to read it 
INPUT (file statement) #2, a, b, c$ 
CLOSE #2 

PRINT a, b, c$ 
WRITE a, b, c$

END '' ''
 1           2          Three
1,2,"Three"
Screen output: PRINT string values will not display enclosing quotes. WRITE screen displays will.
1,2,"Three"
File content: WRITE string values will include quotation marks, but they are not required to read the file value as a string.
Example 2: Commas inside of string values will not affect the INPUT value as those commas are not WRITE separators.
OPEN "testinp.dat" FOR...NEXT OUTPUT AS #1
WRITE (file statement) #1, x$, y$
CLOSE #1


OPEN "testinp.dat" FOR (file statement) INPUT (file mode) AS #1

INPUT (file statement) #1, a$, b$
CLOSE #1

PRINT a$, b$ 
WRITE a$, b$ '' ''
Hello, how are you?        I'm fine. 
"Hello, how are you?","I'm fine."
"Hello, how are you?","I'm fine."
File content: Commas inside of strings delimited with quotes will be ignored. WRITE will always enclose string values in quotes.

See also


Navigation:
Go to Keyword Reference - Alphabetical
Go to Keyword Reference - By usage
Go to Main WIKI Page
⚠️ **GitHub.com Fallback** ⚠️