我想使用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控制檯將有不同的順序。 –