文章
· 16 hr 前 阅读大约需 4 分钟

第五十三章 File 输入 输出 - OPEN模式参数

第五十三章 File 输入 输出 - OPEN模式参数

A /APPEND /APP

Append:WRITE 操作将数据附加到现有文件的末尾。默认设置是覆盖现有数据,而不是 append

S /STREAM

流格式,回车符、换行符或换页符作为默认终止符。S、V、F 和 U 模式是互斥的。Stream record format 是默认格式。

V /VARIABLE

请勿尝试在可变长度顺序文件末尾以外的任何位置插入记录;WRITE 将使文件中的所有数据从 WRITE 之后的点开始无法访问。S、V、F 和 U 模式是互斥的。流记录 (S) 格式是默认格式。

使用转换表写入的可变长度记录(例如使用 UTF8 转换的 Unicode 数据)可能会导致存储的记录具有与输入数据不同的字符串长度。IRIS 在读取此记录时使用原始输入字符串长度。

F /FIXED /FIX

Fixed length:每条记录都是 reclen 参数中指定的长度。例如:OPEN “myfile”:(“RF”:4) USE “myfile”:0 READ x:5此示例将前 4 个字符的记录读入变量 x。这仅适用于 READ 操作(不适用于WRITE 操作)。S、V、F 和 U 模式是互斥的。

U /UNDEFINED

未定义的长度:指定文件记录具有未定义的长度,因此 READ 操作必须指定要读取的字符数。最大记录长度在 reclen 参数中指定。输出时无翻译。默认值为最大字符串长度。S、V、F 和 U 模式是互斥的。

K\name\ Knum /TRANSLATE[=n]: /IOTABLE[=name] /TRA[=n]: /IOT[=name]

I/O 转换模式:当您为设备使用“K”参数时,如果已在系统范围内启用转换,则该设备将进行 I/O 转换。通过指定表的名称,可以标识翻译所基于的先前定义的表。使用关键字时,指定 /TRANSLATE 以启用 I/O 转换(n=1 表示启用;n=0 禁用),并使用 /IOTABLE=name 指定要使用的转换表。有关可用转换表的列表,请参阅 $ZCONVERT 函数文档中的编码转换。用于打开和关闭协议的 +- 选项不适用于 K 协议。(旧形式 Knum,其中 “num” 表示 table 加载到的插槽的编号,正在逐步淘汰,但仍受支持。系统管理器可以在选择窗口的 %NLS 实用程序中为每种表类型显示插槽编号。此参数可以与 OPEN 命令或 USE 命令一起使用。

Y\name\ Ynum /XYTABLE[=name] /XYT[=name]

$X/$Y Action Mode:对设备使用 “Y” 参数时,系统使用指定的 $X/$Y Action Table。通过指定表的名称,可以确定之前定义的 $X/$Y 操作表,该表的转换基于该表。$X/$Y 操作始终处于启用状态。如果未指定 “Y” 且未定义系统默认 $X/$Y,则使用内置的 $X/$Y 操作表。用于打开和关闭协议的 +- 选项不适用于 Y 协议。(旧形式 Ynum,其中 “num” 表示加载表的槽数,正在逐步淘汰,但仍受支持。系统管理器可以在NLS 实用程序的选择窗口中显示每种表类型的插槽编号。此参数可以与 OPEN 命令或 USE 命令一起使用。

/NOXY [=n

无$X和$Y处理:/NOXY/NOXY=n(对于 n 的非零值)将禁用$X$Y处理。这可以显著提高 READWRITE 操作的性能。$X$Y 变量的值是不确定的,并且 margin 处理(取决于$X)处于禁用状态。/NOXY=0 启用 $X$Y 处理;这是默认设置。此参数可以与 OPEN 命令或 USE 命令一起使用。

/OBUFSIZE=int

Output Buffering:创建输出WRITE 缓冲区。int 变量是一个整数,用于指定缓冲区的大小(以字节为单位)。仅当文件打开时只能写入(“W”,而不是“R”“RW”)时使用。在执行多个小型写入时,尤其是通过 WAN 时,可能会提供显著的性能改进。但是,如果发生系统崩溃,缓冲区中的数据可能会丢失。缓冲区中的数据在 CLOSE、WRITE *-1WRITE *-3 时刷新到磁盘。

/GZIP [=n]

GZIP 压缩:指定与 GZIP 兼容的流数据压缩。/GZIP/GZIP=n(对于 n的非零值)在 WRITE 时启用压缩,在 READ 时启用解压缩。/GZIP=0 禁用压缩和解压缩。在发出 /GZIP=0 以禁用压缩和解压缩之前,请检查 $ZEOS 特殊变量以确保流数据读取未进行中。/GZIP 压缩对 I/O 转换没有影响,例如使用 /IOTABLE 建立的转换。这是因为压缩是在所有其他转换(加密除外)之后应用的,而解压缩是在所有其他转换(加密除外)之前应用的。

/COMPRESS=str

将流数据压缩类型指定为以下值之一:
- “zlib” — 使用 zlib 压缩库。/COMPRESS=“zlib” 等效于 /GZIP=1
- “zstd” — 使用 Zstandard 压缩算法。
- “lz4” — 使用 LZ4压缩算法。
- “deflate” — 使用 DEFLATE压缩算法。

要禁用压缩,请指定 /COMPRESS=“”。要压缩字符串,请使用 %SYSTEM。Util.Compress()Util.Compress() 中。

讨论 (0)1
登录或注册以继续