FOPEN( ) Function
Opens a file for use with low-level file functions.
FOPEN(cFileName [, nAttribute])
Parameters
cFileName
Specifies the name of the file to open. cFileName can include a path to open files in directories, folders, drives, or volumes not in the current Microsoft Visual FoxPro search path. If a path isn't included, Visual FoxPro searches for the file in the following locations:Default directory
Path established with SET PATH
Note
Visual FoxPro will not recognize a path name properly if a disk or directory name contains an exclamation point (!).
nAttribute
Specifies read/write privileges or a buffering scheme for the file you open. The following table lists each number you can include in nAttribute, and the read/write file privileges and buffering scheme it establishes.nAttribute
Read/Write privileges
Buffered/unbuffered
0
(Default) Read-only
Buffered
1
Write-only
Buffered
2
Read and Write
Buffered
10
Read-only
Unbuffered
11
Write-only
Unbuffered
12
Read and Write
Unbuffered
If nAttribute isn't included, or if nAttribute evaluates to 0, the file is opened as read-only and is buffered.
Note
Visual FoxPro will not recognize a path name properly if a disk or directory name contains an exclamation point (!).
Remarks
If FOPEN( ) successfully opens the file, the file handle number of the file is returned. FOPEN( ) returns –1 if the file cannot be opened.
Tip
Assign the file handle number to a memory variable so you can access the file by the memory variable in other low-level file functions.
The following information about files opened with FOPEN( ) can be displayed or sent to a printer with DISPLAY STATUS or LIST STATUS.
Drive and directory or volume and folder, and file name
File handle number
File pointer position
Read/write attributes
Return Value
Numeric
Example
IF FILE('errors.txt') && Does file exist?
gnErrFile = FOPEN('errors.txt',12) && If so, open read/write
ELSE
gnErrFile = FCREATE('errors.txt') && If not, create it
ENDIF
IF gnErrFile < 0 && Check for error opening file
WAIT 'Cannot open or create output file' WINDOW NOWAIT
ELSE && If no error, write to file
=FWRITE(gnErrFile, 'Error information to be written here')
ENDIF
=FCLOSE(gnErrFile) && Close file
MODIFY FILE errors.txt NOWAIT && Open file in edit window