我最近开始了COBOL
课程,由于我的计算机配置(Windows 7 64 Bits
和GNU/Linux 64Bits)
,我必须使用Dosbox
来编译和执行程序。< / p>
一切进展顺利但是,当我尝试打开Indexed file
I-O
或Ouput
模式时,我发现了一些麻烦。我可以编译和链接,但在执行时,dosbox
被冻结。
我的编译器版本为MS-COBOL 5.0
,DosBox
为0.74(最新版本)。
有人有这个问题吗?有人可以告诉你如何解决它。
我的代码就是这个。
提前致谢。
IDENTIFICATION DIVISION. PROGRAM-ID. AGENDA. AUTHOR. JOSE MARIA RAMIREZ MIRA. DATE-WRITTEN. 06/05/2014. DATE-COMPILED. 06/05/2014. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. IBM-PC. OBJECT-COMPUTER. IBM-PC. SPECIAL-NAMES. DECIMAL-POINT IS COMMA. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT AGENDA ASSIGN TO DISK "AGENDA.DAT" ORGANIZATION IS INDEXED ACCESS IS RANDOM RECORD KEY IS AG-NICK FILE STATUS IS AG-STATUS. DATA DIVISION. FILE SECTION. FD AGENDA RECORD CONTAINS 112 CHARACTERS LABEL RECORD IS STANDARD DATA RECORD IS AG-PERSONA. 01 AG-PERSONA. 03 AG-NICK PIC X(25). 03 AG-NOMBRE PIC X(25). 03 AG-APELLIDOS PIC X(50). 03 AG-TELEFONO PIC X(12). WORKING-STORAGE SECTION. 77 AG-STATUS PIC 99. 88 EXITO VALUE 00. 88 CLAVE-DUPLICADA VALUE 22. 88 CLAVE-NO-ENCONTRADA VALUE 23. 88 SIN-ESPACIO-EN-DISCO VALUE 34. 88 FICHERO-NO-EXISTE VALUE 35. 88 EOF VALUE 10. PROCEDURE DIVISION. MAIN-PROCEDURE. DISPLAY "PROCEDO A ABRIR EL ARCHIVO". OPEN I-O AGENDA. IF EXITO THEN DISPLAY "EL ARCHIVO SE HA ABIERTO" ELSE EVALUATE TRUE WHEN FICHERO-NO-EXISTE DISPLAY "EL ARCHIVO NO EXISTE" END-EVALUATE END-IF. CLOSE AGENDA. STOP RUN. END PROGRAM AGENDA.
答案 0 :(得分:0)
AGENDA.DAT
的绝对路径是什么?
有时使用旧版DOS程序,您无法读取/写入名称中包含空格的文件夹内的文件。比如说,如果您当前的文件夹是C:\ms cobol\
,请将其重命名为C:\mscobol\
。
如果是这种情况,值得一试。
答案 1 :(得分:0)
您是否尝试使用可选短语选择文件。例如,
SELECT OPTIONAL AGENDA ASSIGN TO DISK "AGENDA.DAT"
ORGANIZATION IS INDEXED
ACCESS IS RANDOM
RECORD KEY IS AG-NICK
FILE STATUS IS AG-STATUS.
必须为在程序运行时不需要存在的INPUT,I-O或EXTEND打开的文件指定可选短语。
对此问题是你的陈述,即OPEN OUTPUT也会出现问题,程序在任何情况下都应该产生一些输出,但正如其他人所说,COBOL的版本并不为人所知。
顺便把我的程序插入到http://www.compileonline.com/compile_cobol_online.php的在线COBOL中 并且它可以很好地触发FICHERO-NO-EXISTE条件名称。
但这确实提出了另一点。在我的Microfocus手册中,当在不存在的非可选文件上尝试OPEN INPUT,I-O或EXTEND时,将返回文件状态代码35。如果您使用了OPTIONAL短语并且在执行OPEN时该文件不存在,则返回文件状态05。
答案 2 :(得分:0)
DOSBox专为游戏而设计。 问题可能是DOSBox丢失文件和记录锁定。 DOSBox有更多问题,如内部文件缓存,一个启用多用户程序的定时炸弹。 您可以尝试vDos:http://sourceforge.net/projects/vdos/。 它只是Windows,但与它集成得更好。