mirror of
https://github.com/QB64-Phoenix-Edition/QB64pe.git
synced 2024-09-28 11:17:46 +00:00
48 lines
2.2 KiB
Text
48 lines
2.2 KiB
Text
#REDIRECT [[OPEN#File_Access_Modes]]
|
|
|
|
The '''INPUT''' file mode in an [[OPEN]] statement opens an existing file for [[INPUT (file statement)|INPUT]].
|
|
|
|
|
|
{{PageSyntax}}
|
|
: [[OPEN]] {{Parameter|fileName$}} FOR '''INPUT''' AS #filenumber%
|
|
|
|
|
|
* If {{Parameter|fileName$}} does not exist, attempting to open it FOR INPUT will create a program [[ERROR Codes|file error]]. Use [[_FILEEXISTS]] to avoid errors.
|
|
* The file number can be determined automatically by using a [[FREEFILE]] variable value.
|
|
* Mode can use [[INPUT (file statement)|INPUT]] #, [[LINE INPUT (file statement)|LINE INPUT]] # or [[INPUT$]] to read the file data.
|
|
* Use the [[EOF]] function to avoid reading data past the end of a file and creating an [[ERROR Codes|INPUT error]].
|
|
* Input file statements will use the same file number as the OPEN statement.
|
|
* The INPUT mode allows the same file to be opened in another mode with a different number.
|
|
* '''NOTE: [[LINE INPUT (file statement)|LINE INPUT]] will work faster in [[BINARY]] than INPUT mode in QB64 to stay compatible with QBasic.'''
|
|
|
|
|
|
{{PageExamples}}
|
|
''Example:'' Avoiding an INPUT mode or [[INPUT (file statement)|INPUT #]] read error using a FileExist function. QB64 can use the [[_FILEEXISTS]] function.
|
|
|
|
{{CodeStart}} '' ''
|
|
DIM Fdata$(100)
|
|
INPUT "Enter data file name: ", datafile$
|
|
IF _FILEEXISTS(datafile$) THEN
|
|
D% = {{Cl|FREEFILE}}: count = 0
|
|
{{Cl|OPEN}} datafile$ FOR {{Cl|INPUT (file mode)|INPUT}} AS #D%
|
|
DO UNTIL {{Cl|EOF}}(D%)
|
|
count = count + 1
|
|
{{Cl|INPUT (file statement)|LINE INPUT}} #D%, Fdata$(count)
|
|
IF count = 100 THEN {{Cl|EXIT}} DO ' don't exceed {{Cl|Arrays|array}} size!
|
|
LOOP
|
|
{{Cl|CLOSE}} #D%
|
|
ELSE : PRINT "File not found!"
|
|
END IF
|
|
{{CodeEnd}}
|
|
: ''Explanation:'' The [[_FILEEXISTS]] function is used before {{InlineCode}}OPEN datafile$ FOR INPUT AS #D%{{InlineCodeEnd}}, which would generate an error in case the file didn't exist.
|
|
|
|
|
|
{{PageSeeAlso}}
|
|
* [[INPUT (file statement)|INPUT #]], [[LINE INPUT (file statement)|LINE INPUT #]], [[INPUT$]] {{text|(file input)}}
|
|
* [[INPUT]], [[LINE INPUT]], [[INPUT$]] {{text|(keyboard input)}}
|
|
* [[APPEND]], [[RANDOM]], [[OUTPUT]], [[BINARY]]
|
|
* [[READ]], [[DATA]]
|
|
* [[_FILEEXISTS]], [[_DIREXISTS]]
|
|
|
|
|
|
{{PageNavigation}}
|