0

我最近开始了一COBOL门课程,并且由于我的计算机配置(Windows 7 64 Bits并且GNU/Linux 64Bits)我必须使用它Dosbox来编译和执行程序。

一切都很顺利,但是当我尝试打开Indexed fileI-OOuput模式时,我发现了一些麻烦。我可以编译和链接,但在执行时,dosbox会被冻结。

我的编译器版本是MS-COBOL 5.00.74 DosBox(最新版本)。

有人遇到过这个问题吗?有人可以告诉如何解决它。

我的代码就是这个。

提前致谢。

   识别部。

   程序 ID。议程。
   作者。何塞·玛丽亚·拉米雷斯·米拉。
   写日期。2014 年 6 月 5 日。
   日期编译。2014 年 6 月 5 日。

   环境科。

   配置部分。

   源计算机。IBM-PC。
   对象计算机。IBM-PC。

   特殊名称。
       小数点是逗号。

   输入输出部分。
   文件控制。

       选择议程分配到磁盘“议程.DAT”
              组织已编入索引
              访问是随机的
              记录密钥是 AG-NICK
              文件状态是 AG 状态。

   数据部门。

   文件部分。
   FD议程
      记录包含 112 个字符
      标签记录是标准的
      数据记录是 AG-PERSONA。

   01 AG-角色。
      03 AG-尼克图片 X(25)。
      03 AG-NOMBRE PIC X(25)。
      03 AG-APELLIDOS PIC X(50)。
      03 AG-TELEFONO PIC X(12)。

   工作存储部分。

   77 AG-状态图 99。
      88 出口值 00。
      88 CLAVE-DUPLICADA 值 22。
      88 CLAVE-NO-ENCONTRADA 值 23。
      88 SIN-ESPACIO-EN-DISCO 价值 34。
      88 FICHERO-不存在的价值 35。
      88 EOF 值 10。

   程序部。
   主要程序。

       显示“PROCEDO ABRIR EL ARCHIVO”。
       开放 IO 议程。
       如果退出然后
          显示“EL ARCHIVO SE HA ABIERTO”
       别的
          评估为真
             当 FICHERO 不存在时
                显示“EL ARCHIVO 不存在”
          最终评估
       万一。
       关闭议程。
       停止运行。

   结束计划议程。
4

3 回答 3

1

您是否尝试过使用可选短语选择文件。例如,

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、IO 或 EXTEND 打开的文件指定 OPTIONAL 短语。

与此相反,问题是您声明问题也发生在 OPEN OUTPUT 中,并且程序无论如何都应该产生一些输出,但正如其他人所说,COBOL 的版本并不为人所知。

顺便说一句,我将您的程序插入到http://www.compileonline.com/compile_cobol_online.php的在线 COBOL 中 ,它可以很好地触发 FICHERO-NO-EXISTE 条件名称。

但这确实提出了另一点。在我的 Microfocus 手册中,当尝试对不存在的非可选文件执行 OPEN INPUT、IO 或 EXTEND 时,返回的文件状态代码为 35。如果您使用了 OPTIONAL 短语并且在执行 OPEN 时文件不存在,则返回文件状态 05。

于 2014-05-08T16:31:04.277 回答
0

绝对路径是AGENDA.DAT什么?

有时使用旧版 DOS 程序,您无法读取/写入名称带有空格的文件夹中的文件。说,如果您当前的文件夹是C:\ms cobol\,请将其重命名为C:\mscobol\.

如果这是您的情况,值得一试。

于 2014-05-07T08:09:12.840 回答
0

DOSBox 专为游戏而设计。问题可能是 DOSBox 缺少文件和记录锁定。DOSBox 有更多问题,例如内部文件缓存,多用户程序的定时炸弹。您可以尝试 vDos:http: //sourceforge.net/projects/vdos/。它只是 Windows,但与它更好地集成。

于 2014-05-10T22:19:19.323 回答