Frank Yaeger
DFSORT Developer
Joined: 15 Feb 2005 Posts: 7129 Location: San Jose, CA
|
|
|
|
Here's a way to do it with DFSORT's PARSE function. I assumed a "word" has a maximum of 10 characters (any characters other than blanks), the words are separated by one of more blanks and there can be up to 10 words per record. This should give you the idea and you can change the job as needed.
Code: |
//S1 EXEC PGM=ICEMAN
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=.... input file (FB/80)
//SORTOUT DD DSN=.... output file (FB/10)
//SYSIN DD *
OPTION COPY
INREC IFTHEN=(WHEN=INIT,
PARSE=(%01=(ENDBEFR=BLANKS,FIXLEN=10),
%02=(ENDBEFR=BLANKS,FIXLEN=10),
%03=(ENDBEFR=BLANKS,FIXLEN=10),
%04=(ENDBEFR=BLANKS,FIXLEN=10),
%05=(ENDBEFR=BLANKS,FIXLEN=10),
%06=(ENDBEFR=BLANKS,FIXLEN=10),
%07=(ENDBEFR=BLANKS,FIXLEN=10),
%08=(ENDBEFR=BLANKS,FIXLEN=10),
%09=(ENDBEFR=BLANKS,FIXLEN=10),
%10=(ENDBEFR=BLANKS,FIXLEN=10)),
BUILD=(1:%01,11:%02,21:%03,31:%04,41:%05,
51:%06,61:%07,71:%08,81:%09,91:%10)),
IFTHEN=(WHEN=(91,10,CH,NE,C' '),BUILD=(91,10)),
IFTHEN=(WHEN=(81,10,CH,NE,C' '),BUILD=(81,10)),
IFTHEN=(WHEN=(71,10,CH,NE,C' '),BUILD=(71,10)),
IFTHEN=(WHEN=(61,10,CH,NE,C' '),BUILD=(61,10)),
IFTHEN=(WHEN=(51,10,CH,NE,C' '),BUILD=(51,10)),
IFTHEN=(WHEN=(41,10,CH,NE,C' '),BUILD=(41,10)),
IFTHEN=(WHEN=(31,10,CH,NE,C' '),BUILD=(31,10)),
IFTHEN=(WHEN=(21,10,CH,NE,C' '),BUILD=(21,10)),
IFTHEN=(WHEN=(11,10,CH,NE,C' '),BUILD=(11,10)),
IFTHEN=(WHEN=(1,10,CH,NE,C' '),BUILD=(1,10))
/*
|
|
|