INPUT (file statement) - QB64Official/qb64 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[, variable2, ..., variableN]

Parameter(s)

  • fileNumber& is a positive LONG integer value used to OPEN the file FOR INPUT (file mode) mode.
  • The Variable Types 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 Variable Typess being read. STRING variables can return unquoted numeric values.
  • Leading or trailing spaces of STRING values must be inside of quotes. WRITE (file statement) writes strings inside of quotes automatically. PRINT (file statement) 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 (file statement) usually have the same number of values on each file line. If INPUT reads more or less values, it may read beyond the EOF 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.

Example(s)

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


filename$ = "testfile.dat" 
x = 1: y = 2: z$ = "Three" 

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

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

OPEN filename$ FOR INPUT AS #2 'opens a file to read it 
INPUT #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 (file statement) string values will include quotation marks, but they are not required to read the file value as a string.

Commas inside of string values will not affect the INPUT value as those commas are not WRITE (file statement) separators.


x$ = "Hello, how are you?"
y$ = "I'm fine."

OPEN "testinp.dat" FOR OUTPUT AS #1
WRITE #1, x$, y$
CLOSE #1

OPEN "testinp.dat" FOR INPUT AS #1

INPUT #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 (file statement) will always enclose string values in quotes.

See Also