108 回出現する名前の配列を形成することになっています。左の列に名前 1 ~ 54、右の列に名前 55 ~ 108 があるはずです。1 ページに 108 個の名前が表示されたら、配列を初期化して最初からやり直します。私のコードの出力は、名前1〜54が印刷され、同じページに名前1〜54の横にあるのではなく、右側の列に名前55〜108が表示されていますが、名前1〜54の後にあります。どんな考えでも大歓迎です。
これが私のコードの一部です:
PERFORM UNTIL ARE-THERE-MORE-RECORDS = 'NO '
READ NAMELIST-FILE-IN
AT END
MOVE 'NO ' TO ARE-THERE-MORE-RECORDS
NOT AT END
PERFORM 200-PROCESS-ONE-RECORD
END-READ
END-PERFORM
CLOSE NAMELIST-FILE-IN
CLOSE NAMELIST-FILE-OUT
STOP RUN.
200-PROCESS-ONE-RECORD.
ADD 1 TO NAME-SUB
MOVE NAME-IN TO NAME-1 (NAME-SUB)
PERFORM 220-MOVE-RECORDS.
220-MOVE-RECORDS.
IF NAME-SUB <= 54
MOVE NAME-1 (NAME-SUB) TO LEFT-LABEL
MOVE SPACES TO RIGHT-LABEL
END-IF
IF NAME-SUB >= 55
MOVE NAME-1 (NAME-SUB) TO RIGHT-LABEL
MOVE SPACES TO LEFT-LABEL
END-IF
MOVE DETAIL-LINE TO NAMELIST-RECORD-OUT
WRITE NAMELIST-RECORD-OUT
AFTER ADVANCING 1 LINE
IF NAME-SUB >= 108
MOVE SPACES TO DETAIL-LINE
MOVE ZERO TO NAME-SUB
PERFORM 300-WRITE-HEADING
END-IF.
情報に対応するために、すべての適切な WORKING-STORAGE エントリをコーディングしました。詳細行の書き方に何か問題があるのか 、それともデータの処理方法に問題があるのか わかりますか?