[toc]
第五十三章 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
。这仅适用于 REA
D 操作(不适用于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]
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
无Y处理:/NOXY
或 /NOXY=n
(对于 n
的非零值)将禁用$X
和$Y
处理。这可以显著提高 READ
和 WRITE
操作的性能。$X
和 $Y
变量的值是不确定的,并且 margin
处理(取决于$X
)处于禁用状态。/NOXY=0
启用 $X
和 $Y
处理;这是默认设置。此参数可以与 OPEN
命令或 USE
命令一起使用。
/OBUFSIZE=int
Output Buffering:创建输出WRITE
缓冲区。int
变量是一个整数,用于指定缓冲区的大小(以字节为单位)。仅当文件打开时只能写入(“W”
,而不是“R”
或“RW”
)时使用。在执行多个小型写入时,尤其是通过 WAN 时,可能会提供显著的性能改进。但是,如果发生系统崩溃,缓冲区中的数据可能会丢失。缓冲区中的数据在 CLOSE、WRITE *-1
或 WRITE *-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()
中。