INPUT (file statement)
The INPUT # file or port statement reads sequential data using one variable or a comma separated list of matching variable types.
- INPUT #fileNumber&, variable1[, variable2, ..., variableN]
- 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).
- 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.
Example 1: 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"
- 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.
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.
- INPUT (file mode), LINE INPUT #, INPUT$ (file input)
- INPUT, LINE INPUT, INPUT$ (keyboard input)
- PRINT #, PRINT #, USING
- GET #, INPUT (TCP/IP statement)