ファイル (FILE1) を読み取るプログラムがあります。FILE1 のすべてのレコードについて、フィールド 'A' を取得し、FILE2 を検索してフィールド 'B' の値と一致するレコードを見つけます。A = B の場合、両方のファイルから一部のフィールドが読み取られます。プログラムは現在、以下のようなコードで動作しています。ただし、問題は、ループで FILE2 を複数回開いたり閉じたりしていることです。ループ内でファイルを開かずにこれを試しましたが、そうすると、前の検索が中断したところから FILE2 が読み込まれているため、レコードが繰り返されます。FILE1 から新しいレコードを読み取るたびに、File2 の先頭を指す方法はありますか? コードは以下のとおりです。
READ FILE(FILE1) INTO (IN_LAYOUT);
DO WHILE (MORE_RECS1);
OPEN FILE(FILE2);
READ FILE(FILE2) INTO (IN_LAYOUT2);
MORE_RECS2 = '1'B;
DO WHILE (MORE_RECS2);
IF (A = B) THEN
DO;
VAL = VAL2;
WRITE FILE (OUFILE) FROM (OUT_LAYOUT);
S_MORE_RECS2 = '0'B;
CLOSE FILE(FILE2);
END; /* ENDIF */
ELSE READ FILE(FILE2) INTO (IN_LAYOUT2);
END; /* INNER DOWHILE */
READ FILE(FILE1) INTO (IN_LAYOUT);
END;