Input (File Mode)
Specifies text file to be opened for input mode
Syntax
`
Open filename for Input [Encoding encoding_type] [Lock lock_type] as [#]filenum
`
Parameters
`filename`
file name to open for input
`encoding_type`
indicates encoding type for the file
`lock_type`
locking to be used while the file is open
`filenum`
unused file number to associate with the open file
Description
A file mode used with `Open` to open a text file for reading.
This mode allows to read sequentially lines of text with `Line Input #`, or to read comma separated values with `Input #`.
Text files can't be simultaneously read and written in FreeBASIC, so if both functions are required on the same file, it must be opened twice.
`filename` must be a string expression resulting in a legal file name in the target OS, without wildcards. The file will be sought for in the present directory, unless the `filename` contains a path . If the file does not exist, an error is issued. The pointer is set at the first character of the file.
`Encoding_type` indicates the Unicode `Encoding` of the file, so characters are correctly read. If omitted, "ascii" encoding is defaulted. Only little endian character encodings are supported at the moment.

- `"utf8"`,
- `"utf16"`
- `"utf32"`
- `"ascii"` (the default)

`Lock_type` indicates the way the file is locked for other processes, it is one of:

- `Read` - the file can be opened simultaneously by other processes, but not for reading
- `Write` - the file can be opened simultaneously by other processes, but not for writing
- `Read Write` - the file cannot be opened simultaneously by other processes (the default)

`filenum` is a valid FreeBASIC file number (in the range `1..255`) not being used for any other file presently open. The file number identifies the file for the rest of file operations. A free file number can be found using the `FreeFile` function.
Example
`
Dim ff As UByte
Dim randomvar As Integer
Dim name_str As String
Dim age_ubyte As UByte
ff = FreeFile
Input "What is your name? ",name_str
Input "What is your age? ",age_ubyte
Open "testfile" For Output As #ff
Write #ff, Int(Rnd(0)*42),name_str,age_ubyte
Close #ff
randomvar=0
name_str=""
age_ubyte=0
Open "testfile" For Input As #ff
Input #ff, randomvar,name_str,age_ubyte
Close #ff
Print "Random Number was: ", randomvar
Print "Your name is: " + name_str
Print "Your age is: " + Str(age_ubyte)
'File outputted by this sample will look like this,
'minus the comment of course:
'23,"Your Name",19
`
Differences from QB
See also

- `Append`
- `Open`
- `Output`