2

この演習の目標は、入力ファイルを読み取ってテーブルに保存し、入力内の特定のフィールドを検証してエラー レコードを出力することです。ファイル全体ではなく、一度にテーブルに格納されるレコードが 5 つだけになるように、各ポリシー グループを読み取って格納する必要があります。

したがって、5 つのレコードであるポリシー グループを読み込み、処理を行ってから、ファイルの最後まで次の 5 つのレコードを読み込む必要があります。

This is the input file.
10A 011111          2005062520060625                                    
20A 011111000861038                                                     
32A 011111                            79372                             
60A 0111112020                                             6          4 
94A 011111     080 1                                                    
10A 02222          2005082520060825                                    
20A 022221000187062                                                     
32A 022221                            05038                             
60A 0222212003                                             6          4 
94A 022221     090 1                                                    
....

テーブルをOCCUR 5 TIMESにすることで、最初の5つのレコードをテーブルにロードできましたが、それをどのように続けるかわかりません。私のコードは以下です。(正しく動作するかどうかを確認するために書きましたが、ヘッダー行には最初の 5 レコードだけでなく、最初の 4 レコードが出力されます) 01 TABLES.

05  T1-RECORD-TABLE.                                
    10  T1-ENTRY                OCCURS 5 TIMES      
                                INDEXED BY T1-INDEX.

        15  RECORD-TYPE-10      PIC X(80).          
        15  RECORD-TYPE-20      PIC X(80).          
        15  RECORD-TYPE-32      PIC X(80).          
        15  RECORD-TYPE-60      PIC X(80).          
        15  RECORD-TYPE-94      PIC X(80).          

 copy trnrec10.
 COPY TRNREC20.
 COPY TRNREC32.
 COPY TRNREC60.
 COPY TRNREC94.
.....

Z200-READ-FILES.                               
    READ DISK-IN INTO T1-ENTRY(T1-INDEX)       
        AT END MOVE 'YES' TO END-OF-FILE-SW.   

    WRITE PRINT-RECORD FROM T1-ENTRY(T1-INDEX).

私はこれを段階的に行いたくありません (それはいいことですが :P) bc 何をする必要があるかはわかっていますが、それを行う方法がわかりません bc 私の教科書とコースノートは私には役に立ちません。私はしばらくこれで立ち往生しており、何も試してもうまくいきません。

4

2 に答える 2

5

すべてのポリシー グループには、5 つのレコード タイプを持つ正確に 5 つのレコードがあると想定しています。

このように作業用ストレージをセットアップできます。

05  T1-RECORD.
    10  T1-RECORD-TYPE               PIC XX.
    10  FILLER                       PIC X(78).      

 COPY TRNREC10.
 COPY TRNREC20.
 COPY TRNREC32.
 COPY TRNREC60.
 COPY TRNREC94.

次に、読んだ段落は次のようになります。TRNREC10-RECORD は TRNREC10 コピーブックの 01 レベルであると想定しました。そうでない場合は、次のコードで実際の 01 レベルを置き換えます。

2200-READ-FILE.                               
    READ DISK-IN INTO T1-RECORD      
        AT END MOVE 'YES' TO END-OF-FILE-SW.  

    IF END-OF-FILE-SW = 'NO'
        IF T1-RECORD-TYPE = '10'
            MOVE T1-RECORD TO TRNREC10-RECORD
        END-IF
        IF T1-RECORD-TYPE = '20'
            MOVE T1-RECORD TO TRNREC20-RECORD
        END-IF
        ...
    END-IF.

書き込み段落は次のようになります

2400-WRITE-FILE.
    WRITE PRINT-RECORD FROM TRNREC10-RECORD
    WRITE PRINT-RECORD FROM TRNREC20-RECORD
    ...

処理段落はコピーブック レコードのデータにアクセスします。

于 2013-11-14T19:01:01.610 に答える