COBOL 中的命令等待?

aID*_*rse 4 cobol gnucobol

COBOL 中是否有一种“等待”功能?我写了一个计算器,为了让它更 50 多岁,我打印了“计算”。“计算..” ecc 例如:

                   DISPLAY "SECONDO NUMERO"
                   ACCEPT B
                   COMPUTE C= A * B
                          DISPLAY "Computing"
                          DISPLAY "Computing."
                          DISPLAY "Computing.."
                          DISPLAY "Computing..."
                          DISPLAY "Computing...."
                          DISPLAY "Computing....."
                          DISPLAY "Computing......"
                          DISPLAY A "x" B " FA..."
                          DISPLAY C
Run Code Online (Sandbox Code Playgroud)

现在,有没有办法在我放置“计算”部分的 COBOL 上稍微延迟(半秒)?我为这个项目创建了一个 github repo ( https://github.com/aIDserse/Super-utility-Submachine-COBOL-CALCULATOR ),查看它(参考 1.3 版)以获得完整的代码(可能会传播它哈哈) . 谢谢!!!

Sim*_*sch 6

有一个在标准 COBOL 中睡眠的声明,但仅限于COBOL 202x

           CONTINUE AFTER arithmetic-expression SECONDS
Run Code Online (Sandbox Code Playgroud)

由于该标准处于委员会草案状态,因此很难找到实现,但正如您所要求的 GnuCOBOL - GnuCOBOL 3.1 已经实现了它。

除此之外,还可以使用一些特定于方言的库例程,例如CALL "C$SLEEP"源自 ACUCOBOL-GT(也使用 GnuCOBOL 实现,但请注意,3.1 之前的版本仅使用非小数部分,因此"0.9"会休眠零秒)。

对于 OpenCOBOL/GnuCOBOL,您可以调用CBL_OC_NANOSLEEP/CBL_GC_NANOSLEEP库例程。

对于任何可以调用本机例程的 COBOL 环境,您都有CALL "sleep".

正如Rick Smith提到的,许多 COBOL 实现也实现了一个可调用对象SYSTEM,您可以在其中使用类似ping localhost带有超时的东西,但是您调用的任何内容都可能不可用(或者运行 COBOL 环境的进程无法访问它)。

Stephen Gennard提到了一个非常常见的扩展:

           ACCEPT something WITH TIMEOUT
Run Code Online (Sandbox Code Playgroud)

它有一个“注意”不同的环境使用不同的尺度(一些秒,一些毫秒)。这有利于用户可以通过按下一个键(通常是一个功能键)来“突破”;以及它可能只能在“图形”环境中工作的附加问题。

Anton 的回答强调了 IBM 库例程CEE3DLY