View previous topic :: View next topic
|
Author |
Message |
Nishant Singhal
New User
Joined: 29 Sep 2015 Posts: 2 Location: INDIA
|
|
|
|
Hi All,
I want to compare two sorted input files on the basis of key and need all matched and unmatched values in single output file. I have already written the code but my code is not giving expected results if number of records in input file are not same (record count may differ in any of the input file or it could be same also). I searched the forum (checked sticky notes also) before posting this query but couldn't find any solution(Pls refer the link if same query has already been discussed in past). Looking forward to your suggestions/input. Thanks!
Eg:
Input Files (Number of records are not same):
File1
1
2
3
5
7
8
File2
1
2
4
5
6
Expected Output File:
1
2
3
4
5
6
7
8
Code:
Code: |
FILE SECTION.
FD IN-FILE1.
01 IN-FILE1-REC.
10 KEY-FILE1 PIC 9(1).
FD IN-FILE2.
01 IN-FILE2-REC.
10 KEY-FILE2 PIC 9(1).
FD OUT-FILE3.
01 OUT-FILE3-REC.
10 KEY-FILE3 PIC 9(1).
WORKING-STORAGE SECTION.
01 WS-SCRATCH-PAD.
05 WS-FILE1-EOF-FLG PIC X(1) VALUE SPACE.
88 WS-FILE1-SOF VALUE 'N'.
88 WS-FILE1-EOF VALUE 'Y'.
05 WS-FILE2-EOF-FLG PIC X(1) VALUE SPACE.
88 WS-FILE2-SOF VALUE 'N'.
88 WS-FILE2-EOF VALUE 'Y'.
PROCEDURE DIVISION.
0000-BEGIN.
PERFORM 1000-INIT
PERFORM 2000-PROCESS THRU 2000-EXIT
UNTIL WS-FILE1-EOF OR WS-FILE2-EOF
PERFORM 3000-TERMINATE THRU 3000-EXIT
GOBACK.
1000-INIT.
OPEN INPUT IN-FILE1
IN-FILE2
OPEN OUTPUT OUT-FILE3
PERFORM READ-FILE1
PERFORM READ-FILE2.
****************************************************
2000-PROCESS.
IF KEY-FILE1 = KEY-FILE2
MOVE IN-FILE1-REC TO OUT-FILE3-REC
WRITE OUT-FILE3-REC
PERFORM READ-FILE1
PERFORM READ-FILE2
ELSE
IF KEY-FILE1 < KEY-FILE2
MOVE IN-FILE1-REC TO OUT-FILE3-REC
WRITE OUT-FILE3-REC
PERFORM READ-FILE1
PERFORM WRITE-FILE2
ELSE
MOVE IN-FILE2-REC TO OUT-FILE3-REC
WRITE OUT-FILE3-REC
PERFORM READ-FILE2
PERFORM WRITE-FILE1
END-IF
END-IF.
****************************************************
2000-EXIT.
EXIT.
****************************************************
READ-FILE1.
READ IN-FILE1
AT END
DISPLAY 'FILE1 FILE IS EMPTY'
SET WS-FILE1-EOF TO TRUE
END-READ.
****************************************************
READ-FILE2.
READ IN-FILE2
AT END
DISPLAY 'FILE2 FILE IS EMPTY'
SET WS-FILE2-EOF TO TRUE
END-READ.
****************************************************
WRITE-FILE1.
IF WS-FILE2-EOF
MOVE IN-FILE1-REC TO OUT-FILE3-REC
WRITE OUT-FILE3-REC
END-IF.
****************************************************
WRITE-FILE2.
IF WS-FILE1-EOF
MOVE IN-FILE2-REC TO OUT-FILE3-REC
WRITE OUT-FILE3-REC
END-IF.
*****************************************************
3000-TERMINATE.
CLOSE IN-FILE2
IN-FILE1
OUT-FILE3
3000-EXIT.
EXIT.
|
[/code] |
|
Back to top |
|
|
prino
Senior Member
Joined: 07 Feb 2009 Posts: 1306 Location: Vilnius, Lithuania
|
|
|
|
You've been on this forum for nearly four years, so logically it follows that you've been working in IT for the same time, you call yourself an analyst, yet you're too incompetent to adapt all of the code on this forum that deals with this issue?
WT(H/F) have you been doing those four years? |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10872 Location: italy
|
|
Back to top |
|
|
Nishant Singhal
New User
Joined: 29 Sep 2015 Posts: 2 Location: INDIA
|
|
|
|
prino wrote: |
WT(H/F) have you been doing those four years? |
Please be respectful to others if you do not know anything about them.
Yes I joined this forum long back but it doesnt mean I am working on Mainframe only for these many years. You have no idea how these IT companies works in India. You have been asked to work on anything except your expertise.
Cheers! |
|
Back to top |
|
|
Nic Clouston
Global Moderator
Joined: 10 May 2007 Posts: 2455 Location: Hampshire, UK
|
|
|
|
In any case - you should know not to post on multiple forums at the same time.
Locked. |
|
Back to top |
|
|
|