如何检查文件是否已在 COBOL 中打开?
我正在尝试找到一种方法来检查文件是否已在 COBOL 中打开,以便我可以在文件关闭时打开它,或者在打开时关闭它。
谢谢。
I am trying to find out a way to check whether a file is already opened in COBOL, so that I can open it if it is closed or close it if it is opened.
Thnx.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
检查
文件状态
并采取相应措施。请尝试以下操作:
在
FILE-CONTROL
下添加FILE-STATUS
,例如:在
WORKING-STORAGE
中声明一个FILE STATUS
变量作为
PIC X(2)
值,例如:然后在
PROCEDURE DIVISION
中为您的程序发出OPEN
文件。紧接着,测试
FILE STATUS
的值如:
第一个字符不是“9”的
FILE STATUS
的值为COBOL 标准值,因此测试“41”以检测已打开的文件
应该适用于所有 COBOL 实现。当第一个字符是“9”时要小心,
这些是供应商特定的文件状态代码。查看以下链接
关于使用 COBOL
FILE STATUS
的一个很好的介绍:http://www.simotime.com /vsmfsk01.htmCheck the
FILE STATUS
and act accordingly.Try the following:
Add a
FILE-STATUS
under theFILE-CONTROL
, for example:Declare a
FILE STATUS
variable inWORKING-STORAGE
as a
PIC X(2)
value, for example:Then in the
PROCEDURE DIVISION
issue anOPEN
for yourfile. Immediately following that, test the value of
FILE STATUS
as in:
Values of
FILE STATUS
where the first character is not a '9', areCOBOL standard values so testing for '41' to detect an already open file
should work on all COBOL implementations. Beware when the first character is a '9',
these are vendor specific file status codes. Check out the following link for
a good introduction to using COBOL
FILE STATUS
: http://www.simotime.com/vsmfsk01.htm您的编译器还可能提供外部 API,例如 CBL_CHECK_FILE_EXIST,可在 Micro Focus COBOL、AcuCOBOL 和 Fujutsu COBOL 上找到。
例如,在 Micro Focus COBOL 上:
Your compiler may also provide a external API, such as CBL_CHECK_FILE_EXIST which can be found on Micro Focus COBOL, AcuCOBOL and Fujutsu COBOL.
For example, on Micro Focus COBOL: