MATCH - MERGE LOGIC Match Merge logic is extensively used in COBOL programs to compare the data in two sequential files effectively. O...
MATCH - MERGE LOGIC
Match Merge logic is extensively used in COBOL programs to compare the data in two sequential files effectively. Only pre-requisite to for using this logic is, all input files to be in Sorted Order
Problem : I have 2 Sequential files File1 and File2.
If Record exists in both the files then write data into FILEA
If Record exists only in File1 and not in File2 then write data into FILEB
If Record exists only in File2 and not in File1 then write data into FILEC
Solution: The effective way of solving above problem is, by using Match Merge Logic. Only pre-requisite to for using this logic is, all input files to be in Sorted Order. First step sort I/P file
Explanation of Logic : Below listed are I/P and Output files data for say RollNo
File1 File2 FILEA FILEB FILEC
10 10 10
20 20 20
30 50 30
50 60 50 60
70 99 70
90 90 99
Open FILE1 and 2 in input mode, FileA, B, C in output mode
1. Read File1 (Reads the record 10 )
2. Read File2 (Reads the record 10 )
3. Compare the Key Record of both Files (File1-Rno = File 2-Rno).
a. 10 = 10; means record exists in both files)
b. Write the record in FILE A
c. As we need to advance further, repeat Step1 thru Step3
4. When system reads the records 30 and 50, Step3 will Fail. So evaluate Step4
a. If File1-Rno < File 2-Rno (30 < 50)
b. Record 30, which is > 20 and <50, means Rollno 30 is not present in FILE 2
c. i.e., Record 30 exists only in File1
d. Write the record into FILE B
e. Now Read only FILE 1, and repeat thru step 3
5. When system reads the records 70 and 60 from file1 and 2 respectively, Step3,4 will Fail. So evaluate Step5
a. If File1-Rno > File 2-Rno (70 > 50)
b. Record 60 of file2, which is > 50 and <70, means Roll no 60 is not present in FILE 1
c. i.e., Record 60 exists only in File2
d. Write the record into FILE C
e. Now Read only FILE 2, and repeat thru step 3
6. Repeat above steps until end of both the files.
Close all files
Advantages : Open/close both file only once.
Faster
5 comments
Really good one...
Thanks. It helped.
Very good explanation.. Nice
Very good explanation. Same I tried to convey to my interviewer, he was not in a good mood to listen to me carefully.
I did this in java using hasNext() method everything works fine except the last record in not being processed because hsaNext() detects end of file.
Post a Comment