第五十七章 File
输入 输出 - READ
命令
在定位的 READ
或 WRITE
之后,后续的 READ
或 WRITE
操作将按顺序进行,直到下一个带有 position
参数的 USE
命令。
READ
命令从当前设备读取数据,一次读取一条记录。读取超过文件末尾会导致错误。
语法
READ x#n:timeout
x
该变量将保存从文件中读取的记录。n
可选 – 对于可变长度读取,为要读取的字符数,指定为整数。对于固定长度的读取,此参数将被忽略。timeout
超时 可选 – 在超时之前等待读取操作完成的秒数。整数值或解析为整数的变量。
timeout
参数虽然是可选的,但强烈建议使用,因为如果指定了 timeout
,则 READ
的成功或失败由 $TEST
特殊变量的值指示。如果读取尝试在超时到期之前成功,则 $TEST
设置为 1
;如果超时到期,则 $TEST
设置为 0
。
以下示例显示了从 Windows
顺序文件中读取固定长度记录的 READ
操作。它创建一个顺序文件,将数据写入该文件,然后关闭该文件。然后,它会打开此文件以进行 4
个字符的固定长度读取 (“RF”:4
)。它将 USE position
参数设置为第一条记录(记录 0
);每个读取操作都会推进此位置。FOR
循环将每个四字符的记录读取到下标变量中。然后,ZWRITE
命令显示所有这些下标局部变量及其值。
SET myf="C:\InterSystems\IRIS\mgr\temp\myfixedlengthfile"
OPEN myf:("NW") USE myf WRITE "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
CLOSE myf
OPEN myf:("RF":4) USE myf:0 FOR i=1:1:7 {READ x(i):5}
CLOSE myf
ZWRITE
示例
以下示例读取固定长度文件的第三、第四和第五条记录:
SET myfile="FIXED.LEN"
OPEN myfile:("FR":100)
USE myfile:2
READ var1(3),var1(4),var1(5)