0

私は最近COBOLコースを開始しましたが、コンピューターの構成のために (Windows 7 64 Bitsそして、プログラムをコンパイルして実行するためGNU/Linux 64Bits)に使用する必要があります。Dosbox

Indexed fileすべて順調に進んでいますがI-O、モードを開こうとすると問題が発生しOuputます。コンパイルとリンクはできますが、実行時にdosboxフリーズします。

私のコンパイラのバージョンMS-COBOL 5.0DosBox0.74 (最終バージョン) です。

誰もこの問題を抱えていませんか?誰かがそれを修正する方法を教えてもらえますか。

私のコードはこれです。

前もって感謝します。

   識別部門。

   プログラム ID。議題。
   著者。ホセ・マリア・ラミレス・ミラ。
   日付表記。2014 年 6 月 5 日。
   DATE-COMPILED。2014 年 6 月 5 日。

   環境部門。

   設定セクション。

   ソースコンピュータ。IBM-PC。
   オブジェクトコンピュータ。IBM-PC。

   特別な名前。
       小数点はカンマです。

   入出力セクション。
   ファイル制御。

       ディスク「AGENDA.DAT」へのアジェンダの割り当てを選択
              組織は索引付けされています
              アクセスはランダムです
              レコードキーは AG-NICK です
              ファイル ステータスは AG-STATUS です。

   データ部。

   ファイルセクション。
   FDアジェンダ
      レコードには 112 文字が含まれています
      ラベルレコードは標準です
      データレコードはAG-PERSONAです。

   01 AG-PERSONA.
      03 AG-NICK PIC X(25)。
      03 AG-NOMBRE PIC X(25)。
      03 AG-アペリドス PIC X(50)。
      03 AG-テレフォノ PIC X(12).

   ワーキングストレージセクション。

   77 AG-ステータス PIC 99。
      88 出口値 00。
      88 CLAVE-DUPLICADA 値 22。
      88 CLAVE-NO-ENCONTRADA バリュー 23.
      88 SIN-ESPACIO-EN-DISCO バリュー 34.
      88 FICHERO-NO-EXISTE バリュー 35.
      88 EOF 値 10。

   手続き部。
   主手順。

       「PROCEDO A ABRIR EL ARCHIVO」を表示します。
       IO アジェンダを開きます。
       終了する場合
          「EL ARCHIVO SE HA ABIERTO」を表示
       そうしないと
          TRUE と評価する
             FICHERO-NO-EXISTEの場合
                「EL ARCHIVO NO EXISTE」を表示
          最終評価
       END-IF。
       議題を閉じます。
       ストップラン。

   プログラムの議題を終了します。
4

3 に答える 3

1

OPTIONAL 句を使用してファイルを選択しようとしましたか。例えば、

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 マニュアルでは、存在しない NON-OPTIONAL ファイルに対して 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 に答える