FOPEN() 函 数

FOPEN() 函 数 - 图1FOPEN() 函 数 - 图2打开文件 供低级文件函数使用

语 法

FOPEN (cFileName [, nAttribute ])

返 值 类 型

数值型

参 数 描 述

cFileName

FOPEN() 函 数 - 图3FOPEN() 函 数 - 图4FOPEN() 函 数 - 图5FOPEN() 函 数 - 图6FOPEN() 函 数 - 图7指 定 要 打 开 的 文 件 的 名 称 cFileName 中 可 包 含 V isual FoxPro 搜 索 路 径 中 未指 定 的 驱 动 器 名 目 录 名 或 文 件 夹 名 如 果 不 含 路 径 V isual FoxPro 将 在 以下 位 置 搜 索 文 件

  • 默 认 目 录

  • FOPEN() 函 数 - 图8SET

    PATH 命 令 建 立 的 路 径

FOPEN() 函 数 - 图9FOPEN() 函 数 - 图10注 意 如 果 一 个 驱 动 器 名 或 目 录 名 包 含 一 个 惊 叹 号 (!) 则 V isual FoxPro 无 法 正确 识 别 该 名

nAttribute

FOPEN() 函 数 - 图11指 定 打 开 文 件 的 读 写 权 限 或 缓 冲 方 案 下 表 列 出 可 包 含 在 nAttribute 中 的 数

FOPEN() 函 数 - 图12字 及 其 相 应 的 文 件 读 写 权 限 和 缓 冲 方 案

nAttribute

读 写 权 限

缓 冲 FOPEN() 函 数 - 图13

非 缓 冲

0

FOPEN() 函 数 - 图14 默认值 FOPEN() 函 数 - 图15

只读

缓冲

1

只写

缓冲

2

读写

缓冲

10

只读

非缓冲

11

只写

非缓冲

12

读写

非缓冲

FOPEN() 函 数 - 图16FOPEN() 函 数 - 图17如果不包含 nArributenAttribute 等于 0 则以缓冲方式用只读权限打开文件

FOPEN() 函 数 - 图18FOPEN() 函 数 - 图19注 意 如 果 磁 盘 或 目 录 名 中 包 含 一 个 惊 叹 号 (!) V isual FoxPro 不 能 正 确 地 识 别路 径 名

说 明

FOPEN() 函 数 - 图20FOPEN() 函 数 - 图21FOPEN() 函 数 - 图22FOPEN() 函 数 - 图23FOPEN() 函 数 - 图24FOPEN() 函 数 - 图25如果 FOPEN() 函数成功地打开文件或通信端口 则函数返回文件或端口的文件句柄号 如果文件或端口无法打开 则 FOPEN() 函数返回 – 1 可以把文件句柄号赋给某个变量 从而在其他低级文件函数中通过这个变量访问相应文件

FOPEN() 函 数 - 图26FOPEN() 函 数 - 图27可以使用 DISPLAY STATUS 或 LIST STATUS 命令显示 打印有关 FOPEN() 函数打开的文件的信息

  • FOPEN() 函 数 - 图28

    动 器 目 录 及 文 件 名

  • 文 件 句 柄 号

  • 文 件 指 针 位 置

  • 读 写 属 性

示 例

FOPEN() 函 数 - 图29IF FILE('errors.txt') && 文件存在吗

FOPEN() 函 数 - 图30gnErrFile = FOPEN( 'errors.txt',12 ) && 如果存在 打开读 -写

ELSE

FOPEN() 函 数 - 图31gnErrFile = FCREATE('errors.txt') && 如果不存在 创建文件

ENDIF

IF gnErrFile < 0 && 检查打开文件错误

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) && 关闭文件

MODIFY FILE errors.txt NOWAIT && 在编辑窗口中打开文件

请 参 阅

CLOSE ALL, FCHSIZE(), FCLOSE(), FCREATE(), FEOF(), FFLUSH(), FGETS(), FPUTS(), FREAD(), FSEEK(), FWRITE()