我想使用isCOBOL编译器在COBOL中检测按键事件。怎么做?如何做(!kbhit())COBOL等价?
EX在C:
if(time==despert_time){ while(!kbhit()){ Beep(500,500); } }
我想使用isCOBOL编译器在COBOL中检测按键事件。怎么做?如何做(!kbhit())COBOL等价?
EX在C:
if(time==despert_time){ while(!kbhit()){ Beep(500,500); } }
它看起来像你想从控制台的用户交互。 如果它是不是一个时间框架内发生的事情:哔
PERFORM FOREVER *> or UNTIL EXIT or UNTIL 0 = 1, depending on the available extensions
ACCEPT OMITTED *> or ACCEPT DUMMY [which you'd define as 77 DUMMY PIC X.], depending on the available extensions
BEFORE TIME 500 *> [or WITH TIMEOUT 500] this is a more or less common extension, with most vendors using a different time scale --> may need to change the 500
END-ACCEPT
IF keypressed NOT = timeout *> the actual var to be checked and the timeout value need to be checked in the docs
EXIT PERFORM
END-IF
CALL x'E5'
ON EXCEPTION *> the system call x'E5' for beep may not be available
DISPLAY SPACE AT 2080 WITH BEEP *> may not be available, too...
END-CALL
END-PERFORM
检查联机文档附带编译器(这是“适用于客户端只”,因此,我们无法查询)。
如果您不接受(或downvote)答案:请始终发表评论。谢谢。 –
谢谢你的支持! – Jonas
@Jonas,提供的答案是否适合你?如果是,请将其标记为答案,如果不是的话:请评论你的答案。 –
大概你有一本手册? –
因为COBOL最初设计时没有很多手段与人进行交互,所以编译器供应商通过它们自己的扩展增加了可用的简单DISPLAY和ACCEPT。你需要找出* if *和* how * isCOBOL是否允许你这样做。 'do'是一个简单的在线'PERFORM'。 –
GUI还是不GUI?从控制台中,您可以通过调用Java System.in.Available()(如果终端不在线缓冲)来逃脱。如果涉及到图形,写一个小类来为keyPressed,keyReleased或keyTyped添加一个ActionListener和一个处理函数(取决于你想如何处理它)。总之,Java比COBOL可能更容易。如果你确实需要从COBOL中做到这一点,在接受按键(在GNU/Linux上)后,请使用“stty raw”,然后选择“调用”SYSTEM“。 Windows控制台将有不同的顺序。 –