0

私の COBOL の割り当てについて、あなたの助けが必要です。

データ分割ファイル セクションの詳細は以下のとおりです。私の質問は、文字数を数える方法がわかりません - RECORD CONTAINS _ CHARACTERS. 私の計算が正しいか確認して教えていただけますか。そうでない場合は、正しい番号と、どのようにしてそれに到達したかを教えてください。

      FD  BONUS-REPORT

     RECORD CONTAINS 222 CHARACTERS.
     01  BONUS-REPORT-RECORD          PIC X(222).

    WORKING-STORAGE SECTION.
    01  LINE-CT                      PIC 99   VALUE 0.
    01  WS-CONSTANTS. 
        05 TOTAL-LINES               PIC 99   VALUE 10.
    01  ARE-THERE-MORE-RECORDS       PIC X(3) VALUE 'YES'.
        88 MORE-RECORDS              VALUE 'YES'.
        88 NO-MORE-RECORDS           VALUE 'NO'. 
    01  WS-DATE.
       05 WS-YEAR                   PIC 9(4).
       05 WS-MONTH                  PIC 99.
       05 WS-DAY                    PIC 99.
    01  HDR-1.
       05                           PIC X(40).
       05                           PIC X(12)
                              VALUE 'BONUS REPORT'.
       05                           PIC X(8).
       05                           PIC X(5) VALUE 'PAGE'.
       05 PAGE-NO                   PIC 99   VALUE 0.
       05                           PIC X(4).
       05 DATE-OUT.
          10 MONTH-OUT              PIC 99.
          10                        PIC X    VALUE '/'.   
          10 DAY-OUT                PIC 99.
          10                        PIC X    VALUE '/'.   
          10 YEAR-OUT               PIC 9(4). 
   01  HDR-2.
       05                           PIC X(10).
       05                           PIC X(13)
                                  VALUE 'TERRITORY --'.
       05 TERRITORY-NO-OUT          PIC X(2).
   01  HDR-5.
       05                           PIC X(20).
        05                           PIC X(10)
                              VALUE 'OFFICE -- '.
       05 OFFICE-NO-OUT             PIC X(2).             
  01  HDR-7.
      05                           PIC X(10).
      05                           PIC X(14)
                              VALUE 'EMPLOYEE NAME'.
      05                           PIC X(8).
      05                           PIC X(5)
                              VALUE 'BONUS'.                         
 01 DETAIL-LINE.
       05                           PIC X(7).
       05 EMPLOYEE-NAME-OUT         PIC X(24).
       05 BONUS-OUT                 PIC $BZ,ZZZ.99 BLANK WHEN ZERO.
4

3 に答える 3

1

それらすべてを数えて足し合わせるつもりはありませんが、長くなるようです.

ここでは明示的に述べられていませんが、あなたのレコードBONUS-REPORTはおそらく と のようREDEFINESに見えるので、これらの最長のカウントはレコードサイズです (固定長レコードを想定)。HDR-nDETAIL-LINE

10 としてカウントします。すべてがデフォルトでBONUS-OUTあるため、アライメントは必要ありません。USAGE IS DISPLAY句はVALUEカウントに違いはありません。

于 2012-07-18T03:16:23.330 に答える
0

厳密に言えば、ボーナスレコードは222バイトです。これは、あなたが言うことは次のとおりです。-

  01  BONUS-REPORT-RECORD          PIC X(222).

おそらくあなたが求めているのは、さまざまなヘッダーと詳細エントリの長さです。

通常、これらはすべて個別のレコードとして書き込まれます。したがって、最長のレコードは81バイトのHDR-1になります。他のすべては短いです。

于 2012-07-18T08:48:10.417 に答える
0

あなたの質問に対する答えは、コンパイラに答えを求めることです。

つまり、プログラムをそのままコンパイルし、コンパイラのリストをチェックすると、各フィールドとレコードの長さがわかるはずです。その後、ソース コードに戻り、必要に応じて更新できます。

使用している環境 (メインフレーム、UNIX、Windows など) によっては、そのようなコンパイラ リストを作成するようにコンパイラに指示するために、特定のコンパイラ オプションを設定する必要がある場合があります。コンパイラーの 4.2 リリースを備えたメインフレームで z/OS を使用している場合、オプションはすべて、http://pic.dhe.ibm.com/infocenter/pdthelp/v1r1の Enterprise COBOL for z/OS プログラミング ガイドに記載されています。 /topic/com.ibm.entcobol.doc_4.2/PGandLR/ref/rpcos390.htm .

于 2012-07-18T19:24:23.863 に答える