文章
· 十二月 24, 2024 阅读大约需 2 分钟

第五十七章 File 输入 输出 - READ 命令

第五十七章 File 输入 输出 - READ 命令

在定位的 READWRITE 之后,后续的 READWRITE 操作将按顺序进行,直到下一个带有 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)
讨论 (0)1
登录或注册以继续