Открывает файл или порт связи для использования файловыми функциями низкого уровня.
Синтаксис:
FOPEN(cFileName [, nAttribute])
Параметры:
cFileName
Задает имя файла или порта связи, который надо открыть. Если cFileName определяет имя файла, можно включить в него путь, когда открываются файлы в каталогах или на дисках, находящихся вне текущего пути поиска Visual FoxPro. Если путь не указан, Visual FoxPro будет искать файл в следующих местах:
В FoxPro для MS-DOS, если cFileName задает порт связи, он должен быть предварительно инициализирован командой MS-DOS MODE. Укажите имя порта, например COM1 или COM2.
В Visual FoxPro и FoxPro для Macintosh нельзя открывать порты с помощью файловых функций низкого уровня.
nAttribute
Задает полномочия чтения-записи или схему буферизации для открываемого файла. В следующей таблице перечислены все номера, которые можно указывать в качестве nAttribute, а также соответствующие полномочия чтения-записи и схемы буферизации.
nAttribute | Полномочия чтения-записи | Буферизация файла |
---|---|---|
0(По умолчанию) | Только чтение | Буферизуется |
1 | Только запись | Буферизуется |
2 | Чтение и запись | Буферизуется |
10 | Только чтение | Не буферизуется |
11 | Только запись | Не буферизуется |
12 | Чтение и запись | Не буферизуется |
Если nAttribute не задан или равен 0, файл открывается только для чтения и в режиме буферизации. Порты связи всегда следует открывать без буферизации.
Результат:
Числовой.
Комментарии:
Порты связи вообще нельзя открывать в Visual FoxPro и в FoxPro для Macintosh.
Если функция FOPEN() успешно открывает файл или порт связи, возвращается дескриптор файла, соответствующий данному файлу или порту. Если файл или порт не удалось открыть, FOPEN( ) возвращает -1.
Совет. Присвойте дескриптор файла переменной памяти, чтобы через нее получать доступ к этому файлу или порту связи в других файловых функциях низкого уровня.
Ниже приведены категории информации о файлах, открытых с помощью FOPEN( ), которую можно вывести на дисплей или на печать по команде DISPLAY STATUS или LIST STATUS:
Пример:
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