文章
姚 鑫 · 二月 7, 2021 阅读大约需 2 分钟

第二十七章 Caché 变量大全 $ZEOF 变量

第二十七章 Caché 变量大全 $ZEOF 变量

包含指示是否已到达文件末尾的标志。

大纲

$ZEOF

描述

在每次顺序文件读取之后,Caché设置$ZEOF特殊变量以指示是否已到达文件末尾。提供此特殊变量是为了与使用$ZC设备状态检查的MSM例程兼容。

Caché将$ZEOF设置为上次使用的设备的文件状态。例如,如果从顺序文件读取,然后写入主设备,则Caché会将$ZEOF从顺序文件的文件结束状态重置为主设备状态。因此,应该在顺序文件读取之后立即检查$ZEOF值(如果需要,将其复制到变量)。

Caché将$ZEOF设置为下列值:
- –1 文件结束
- 0 不在文件末尾

要使用此功能,必须对顺序文件禁用<ENDOFFILE>错误。

  • 要对当前进程禁用此功能,请调用%SYSTEM.Process类的SetZEOF()方法。
  • 若要在系统范围内禁用此功能,请设置Config.Miscellous类的SetZEOF属性,或者转到管理门户并选择“系统管理”、“配置”、“附加设置”、“兼容性(系统、配置、兼容性设置)”。查看和编辑SetZEOF的当前设置。此选项控制在读取顺序文件时Caché遇到意外文件结尾时的行为。当设置为“true”时,Caché设置$ZEOF特殊变量以指示已到达文件末尾。当设置为“false”时,Caché会发出<ENDOFFILE>错误。默认值为“false”。

当到达文件末尾时,读取将返回空字符串,设置$ZB=NULL和设置$ZEOF=-1,而不是发出<ENDOFFILE>错误。

$ZEOF不支持MSM $ZC函数的所有功能。与$ZC不同,$ZEOF不识别文件分隔符字符或I/O错误。$ZEOF不会使用文件分隔符检查文件终止是否正确。I/O错误由读取命令错误检测,而不是由$ZEOF检测。

不能使用set命令修改此特殊变量。尝试这样做会导致<SYNTAX>错误。

00
1 0 0 9