Help Center
Help CenterFreeBASIC

Input (File Mode)keyword

Specifies text file to be opened for input mode

File I/O Functionskeyworddocumented

Syntax

Open filename for Input [Encoding encoding_type] [Lock lock_type] as [#]filenum

Parameters

NameDescription
filenamefile name to open for input
encoding_typeindicates encoding type for the file
lock_typelocking to be used while the file is open
filenumunused 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.

Remarks

Differences from QB




See also



Example


Dim ff As UByte

Dim randomvar As Integer

Dim name_str As String

Dim age As Integer



'' collect the test data and output to file with Write #

Input "What is your name? ", name_str

Input "What is your age? ", age

Randomize

Print



ff = FreeFile

Open "testfile" For Output As #ff

Write #ff, Int(Rnd*42), name_str, age

Close #ff



'' clear variables

randomvar = 0

name_str = ""

age = 0



'' input the variables, using Input #

ff = FreeFile

Open "testfile" For Input As #ff

Input #ff, randomvar, name_str, age

Close #ff



Print "Random Number was: " & randomvar

Print "Your name is: " & name_str

Print "Your age is: " & age



'File outputted by this sample will look something like this

'(not including the leading comment marker):

'23,"Your Name",19

Reference

  • Documented in KeyPgInputfilemode.html