第五十七章 File 输入 输出 - READ 命令
第五十七章 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)