我正在研究eazytrieve,需要比较两个文件并识别匹配和不匹配的记录。最初,一个文件将为空,而另一个文件将具有一些记录。
我的eazytrieve正在处理两个有记录的文件,但是当其中一个文件为空时却无法工作 请在下面找到我的代码:
JOB INPUT NULL
GET FILEA
GET FLIEB
DISPLAY 'START FILE COMPARE'
DO WHILE NOT EOF FILEA
DO WHILE NOT EOF FLIEB
IF EOF FILEA
DISPLAY 'RECORD PRESENT IN FILEB ONLY'
PERFORM NONMATCH-DATA
GET FILEB
ELSE
IF FILEA-KEY < FILEB-KEY
DISPLAY 'RECORD PRESENT IN FILEA ONLY'
IF NOT EOF FILEA
GET FILEA
END-IF
ELSE
IF FILEA-KEY EQ FILEB-KEY
PUT ERRFILE FROM FILEB
GET FILEA
GET FILEB
ELSE
IF FILEA-KEY > FILEB-KEY
DISPLAY 'RECORD IS PRESENT IN FILEB ONLY'
PERFORM NONMATCH-DATA
GET FILEB
END-IF
END-IF
END-IF
END-IF
END-DO
END-DO
STOP.
NONMATCH-DATA. PROC
MOVE FILEB-SNAME TO NONMAT-SNAME
MOVE FILEB-FNAME TO NONMAT-FNAME
MOVE FILEB-DOB TO NONMAT-DOB
PUT OUTFILE
END-PROC
当FILE A和FILE B都包含一些记录时,Eazytrieve起作用。当文件A为空并且FILEB有一些记录时,则预期结果是OUTFILE应该包含FILEB中的所有记录