MM/DD/YY (month, day, year)
YYMMDD (year, month, day)
77 DATE-IN-PROGRAM PICTURE X(8).
. . .
MOVE CURRENT-DATE TO DATE-IN-PROGRAM.
これを変更する (2 桁の年の形式を保持して) 1 つの方法の例は、次のとおりです。01 DATE-IN-PROGRAM.
02 MONTH-OF-YEAR PIC X(02).
02 FILLER PIC X(01) VALUE "/".
02 DAY-OF-MONTH PIC X(02).
02 FILLER PIC X(01) VALUE "/".
02 YEAR PIC X(02).
01 ACCEPT-DATE.
02 YEAR PIC X(02).
02 MONTH-OF-YEAR PIC X(02).
02 DAY-OF-MONTH PIC X(02).
. . .
ACCEPT ACCEPT-DATE FROM DATE.
MOVE CORRESPONDING ACCEPT-DATE TO DATE-IN-PROGRAM.
01 DATE-IN-PROGRAM.
02 MONTH-OF-YEAR PIC X(02).
02 FILLER PIC X(01) VALUE "/".
02 DAY-OF-MONTH PIC X(02).
02 FILLER PIC X(01) VALUE "/".
02 YEAR PIC X(04).
01 CURRENT-DATE.
02 YEAR PIC X(04).
02 MONTH-OF-YEAR PIC X(02).
02 DAY-OF-MONTH PIC X(02).
. . .
MOVE FUNCTION CURRENT-DATE(1:8) TO CURRENT-DATE.
MOVE CORRESPONDING CURRENT-DATE TO DATE-IN-PROGRAM.
EXAMINE DATA-LENGTH TALLYING UNTIL FIRST " "Enterprise COBOL ではこれを以下のように置き換えてください。
MOVE 0 TO TALLY INSPECT DATA-LENGTH TALLYING TALLY FOR CHARACTERS BEFORE " "
整数値の WORKING-STORAGE 基本データ項目を指定できる個所であれば、 引き続き TALLY 特殊レジスターを使用することができます。
Enterprise COBOL では、 DISPLAY ステートメントを使用して、 EXHIBIT ステートメントを置き換えることができます。ただし、DISPLAY ステートメントは EXHIBIT ステートメントのすべての機能を実行するわけではありません。
OS/VS COBOL Enterprise COBOL
WORKING-STORAGE SECTION. WORKING-STORAGE SECTION.
77 DAT-1 PIC X(8). 77 DAT-1 PIC X(8).
77 DAT-2 PIC X(8). 77 DAT-2 PIC X(8).
. . . . . .
EXHIBIT NAMED DAT-1 DAT-2 DISPLAY "DAT-1 = " DAT-1
"DAT-2 = " DAT-2
OS/VS COBOL Enterprise COBOL
WORKING-STORAGE SECTION. WORKING-STORAGE SECTION.
77 DAT-1 PIC X(8). 77 DAT-1 PIC X(8).
77 DAT-2 PIC X(8). 77 DAT-2 PIC X(8).
77 DAT1-CMP PIC X(8).
77 DAT2-CMP PIC X(8).
. . . . . .
EXHIBIT CHANGED DAT-1 DAT-2 IF DAT-1 NOT EQUAL TO DAT1-CMP
DISPLAY DAT-1
END-IF
IF DAT-2 NOT EQUAL TO DAT2-CMP
DISPLAY DAT-2
END-IF
MOVE DAT-1 TO DAT1-CMP
MOVE DAT-2 TO DAT2-CMP
OS/VS COBOL Enterprise COBOL
WORKING-STORAGE SECTION. WORKING-STORAGE SECTION.
77 DAT-1 PIC X(8). 77 DAT-1 PIC X(8).
77 DAT-2 PIC X(8). 77 DAT-2 PIC X(8).
77 DAT1-CMP PIC X(8).
77 DAT2-CMP PIC X(8).
. . . . . .
EXHIBIT CHANGED NAMED IF DAT-1 NOT EQUAL TO DAT1-CMP
DAT-1 DAT-2 DISPLAY "DAT-1 = " DAT-1
END-IF
IF DAT-2 NOT EQUAL TO DAT2-CMP
DISPLAY "DAT-2 = " DAT-2
END-IF
MOVE DAT-1 TO DAT1-CMP
MOVE DAT-2 TO DAT2-CMP
GIVING 句を置き換えるには、FILE-CONTROL FILE STATUS 文節を使用してください。FILE STATUS 文節は、エラー発生後だけでなく、各入出力要求の後で情報を提供します。
Enterprise COBOL はこれらの句をサポートしません。したがって、LABEL RECORDS 文節から TOTALING/TOTALED 句のすべてのオカレンスを除去し なければなりません。さらに、これらの句に関連した変数も調べてください。
同等のフィールドで、ファイルへのそれぞれの WRITE の前に、キーまたはレコード・データを保管する (TOTALED AREA の場合) か、またはレコード・カウン トを更新して保管します (TOTALING AREA の場合) (これは、特定のボリュームに実際に書き 込まれた最後のレコードを反映します)。このカウンターを FD のレコード域に保存しないで ください。
DECLARATIVES.
USE AFTER STANDARD ENDING FILE (または REEL)
LABEL PROCEDURE ON filename.
ON ステートメントは、それに含まれるステートメントの選択実行を可能にします。Enterprise COBOL では、EVALUATE ステートメントと IF ステートメントによって同様の機能が提供されます。
よくあるファイル状況 39 の問題を防止するには、QSAM ファイルでのファイル状況 39 の防止を参照してください。
| ファイル・タイプ |
規則 |
|---|---|
ESDS および |
RECORDSIZE(avg,m) が指定されます。ここで、avg は COBOL レコードの平均サイズであ り、m よりも確実に小さい値です。m は COBOL レコードの最大サイズ以上です。 |
| RRDS VSAM | RECORDSIZE(n,n) が指定されます。ここで、n は COBOL レコードの最大サイズ以上です。 |
REREAD 機能を置き換えるには、WORKING-STORAGE SECTION で入力レコードのコピーを定 義し、各レコードを、それが読み取られた後で WORKING-STORAGE に移動してください。
READY TRACE ステートメントと類似した機能を得るには、Debug Tool を使用するか、また は Enterprise COBOL コンパイラーで使用可能な COBOL 言語を使用することができます。
"AT GLOBAL LABEL PERFORM; LIST LINES %LINE; GO; END-PERFORM;"
COBOL 言語を使用する場合は、Enterprise COBOL の USE FOR DEBUGGING ON ALL PROCEDURES 宣言 で、READY TRACE および RESET TRACE と同様の機能を実行することができます。
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-370 WITH DEBUGGING MODE.
. . .
DATA DIVISION.
. . .
WORKING-STORAGE SECTION.
01 TRACE-SWITCH PIC 9 VALUE 0.
88 READY-TRACE VALUE 1.
88 RESET-TRACE VALUE 0.
. . .
PROCEDURE DIVISION.
DECLARATIVES.
COBOL-II-DEBUG SECTION.
USE FOR DEBUGGING ON ALL PROCEDURES.
COBOL-II-DEBUG-PARA.
IF READY-TRACE THEN
DISPLAY DEBUG-NAME
END-IF.
END DECLARATIVES.
MAIN-PROCESSING SECTION.
. . .
PARAGRAPH-3.
. . .
SET READY-TRACE TO TRUE.
PARAGRAPH-4.
. . .
PARAGRAPH-6.
. . .
SET RESET-TRACE TO TRUE.
PARAGRAPH-7.
ここで、DEBUG-NAME は DEBUG-ITEM 特殊レジスターのフィールドであり、デバッグ・プロシージャーの実行を引き起こすプロシージャー名を表示します。(この例では、オブジェクト・プログラムは、制御がプロシージャー PARAGRAPH-4 ~ PARAGRAPH-6 の範囲内の各プロシージャーに達すると、そのプロシージャーの名前を表示
します。)実行時には、EXEC ステートメントに PARM=/DEBUG を指定して、このデバッグ・プロシージャーを 活動化しなければなりません。この方法を使用すれば、デバッグ宣言を活動化または非活動化するためにプログラムを 再コンパイルする必要はありません。
Enterprise COBOL は REMARKS 段落を受け入れません。この代わりとして、桁 7 の * から始まるコメント行を使用してください。
MOVE A TO B THEN ADD C TO D
MOVE A TO B ADD C TO D
HHMMSS (hour, minute, second)
Enterprise COBOL は TIME-OF-DAY 特殊レジスターをサポートしません。
77 TIME-IN-PROGRAM PICTURE X(6).
. . .
MOVE TIME-OF-DAY TO TIME-IN-PROGRAM.
MOVE FUNCTION CURRENT-DATE (9:6) TO TIME-IN-PROGRAM
77 DATA-T PICTURE X(9) VALUE "ABCXYZCCC"
. . .
TRANSFORM DATA-T FROM "ABC" TO "CAT"
を実行した場合、TRANSFORM は各文字を評価し、各 A を C に、各 B を A に、各 C を T に変更します。TRANSFORM ステートメントの実行後、DATA-T には "CATXYZTTT" が入っています。
77 DATA-T PICTURE X(9) VALUE "ABCXYZCCC"
. . .
INSPECT DATA-T
CONVERTING "ABC" TO "CAT"
を実行した場合、INSPECT CONVERTING は TRANSFORM と同様に各文字を評価し、各 A を C に、各 B を A に、各 C を T に変更します。INSPECT CONVERTING ステートメントの実行後、DATA-T には "CATXYZTTT: が入っています。
したがって、USE BEFORE STANDARD LABEL ステートメントのすべてのオカレンスを除去しなければなりません。Enterprise COBOL は標準外ラベルをサポートしないので、ユーザーは Enterprise COBOL で 標準外ラベル付きファイルを処理することはできません。