0

メインプログラムから呼び出されるログファイルを作成するために、COBOL でサブプログラムを作成しようとしています。サブプログラムを呼び出すたびにログファイルをクリアしたくないので、「拡張を開く」を使用します。問題は、動作しない未知の理由によるもので、プログラムは何もしません。「オープン拡張」を「オープン出力」に変更すると機能しますが、ファイルが毎回上書きされるのは望ましくありません。

   IDENTIFICATION DIVISION.
   PROGRAM-ID. LOGGER.
   ENVIRONMENT DIVISION.
   INPUT-OUTPUT SECTION.
   FILE-CONTROL.
   SELECT LOGFILE ASSIGN TO "LOGFILE.txt"
   ORGANIZATION IS LINE SEQUENTIAL.
   DATA DIVISION.
   FILE SECTION.
   FD LOGFILE.
   copy "FDLOGGER.cpy".
   WORKING-STORAGE SECTION.

   LINKAGE SECTION.
   01 LOGFILEBOODSCHAP      PIC X(150) value spaces.

   Procedure division USING LOGFILEBOODSCHAP.
   pgm.
   open EXTEND LOGFILE
   Move Current-time to TIJD
   Move Current-date to DATUM
   Move LOGFILEBOODSCHAP to BOODSCHAP   
   write logrecord
   close LOGFILE
   exit program
   . 
4

2 に答える 2

2

まあ、あまり提供していないので推測ですが、「LOGFILE.txt」が存在しない場合は、SELECT で OPTIONAL が必要になります。

コードに FILE STATUS チェックを入れることをお勧めします。

于 2013-03-12T14:00:10.373 に答える