Page 1 of 1
SORTING Input file
Posted: Tue May 12, 2009 10:37 am
by biswaranjan
Hi,
In windows files are sorted in a different order.
My I/P file contains:
137-28-430
16-101
16-101-001
16-101-010
504-36
504-36-020
504-36-020
It contains duplicates.
O/P expected is:
16-101
16-101-001
16-101-010
137-28-430
504-36
504-36-020
Is it possibel in SORT? The character '-' is creating problem in Sorting and in SUM FIELDS=NONE command.
Thanks,
Biswa.
Posted: Tue May 12, 2009 3:19 pm
by maheshvamsi
could you please provide more information like, what is key length??
is the key length is 10?
Posted: Tue May 12, 2009 4:36 pm
by biswaranjan
Hi Mahesh,
The key length is 13.
My I/P file contains:
137-28-430
16-101
16-101-001
16-101-010
504-36
504-36-020
504-36-020
504-36-020918
504-36-020910
Thanks,
biswa.
Posted: Tue May 12, 2009 4:45 pm
by maheshvamsi
could you please post sysout messages if you are still facing any issues after using below sort card.
Code: Select all
SORT FIELDS=(1,13,CH,A)
SUM FIELDS=NONE
At present i am not in front of my mainframes. I didn't tested it. I will check it tomoro.
If you are facing problems still, someone can assist you..
hope this will help you.
Posted: Tue May 12, 2009 8:06 pm
by Frank Yaeger
biswaranjan,
You can use a DFSORT job like the following to do what you asked for. I assumed your input file has RECFM=FB and LRECL=80, but the job can be changed for other attributes as appropriate.
Code: Select all
//S1 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD *
137-28-430
16-101
16-101-001
16-101-010
504-36
504-36-020
504-36-020
/*
//SORTOUT DD SYSOUT=*
//SYSIN DD *
INREC PARSE=(%01=(ENDBEFR=C'-',FIXLEN=3),
%02=(ENDBEFR=C'-',ENDBEFR=C' ',FIXLEN=3),
%03=(FIXLEN=3)),
OVERLAY=(81:%01,UFF,EDIT=(TTT),
%02,UFF,EDIT=(TTT),
%03,UFF,EDIT=(TTT))
SORT FIELDS=(81,9,ZD,A)
SUM FIELDS=NONE
OUTREC BUILD=(1,80)
/*
Posted: Tue May 12, 2009 8:08 pm
by Frank Yaeger
MaheshVamsi,
Your "solution" does not produce the correct results (and leads me to think that you don't even understand the situation). Please don't post untested jobs.