Frank Yaeger
DFSORT Developer
Joined: 15 Feb 2005 Posts: 7129 Location: San Jose, CA
|
|
|
|
Here's a DFSORT job that will do what you asked for (we could probably do a trick with converting the input to VB, getting the length from the RDW and converting back to FB, but using multiple IFTHENs is easier).
Code: |
//S1 EXEC PGM=ICEMAN
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=... input file (FB/80)
//SORTOUT DD DSN=... output file (FB/82)
//SYSIN DD *
OPTION COPY
INREC IFTHEN=(WHEN=INIT,BUILD=(1,2,3:X'0000',5:3,78)),
IFTHEN=(WHEN=(6,1,CH,EQ,C' '),OVERLAY=(3:X'0001')),
IFTHEN=(WHEN=(7,1,CH,EQ,C' '),OVERLAY=(3:X'0002')),
IFTHEN=(WHEN=(8,1,CH,EQ,C' '),OVERLAY=(3:X'0003')),
IFTHEN=(WHEN=(9,1,CH,EQ,C' '),OVERLAY=(3:X'0004')),
IFTHEN=(WHEN=(10,1,CH,EQ,C' '),OVERLAY=(3:X'0005')),
IFTHEN=(WHEN=(11,1,CH,EQ,C' '),OVERLAY=(3:X'0006')),
IFTHEN=(WHEN=(12,1,CH,EQ,C' '),OVERLAY=(3:X'0007')),
IFTHEN=(WHEN=(13,1,CH,EQ,C' '),OVERLAY=(3:X'0008')),
IFTHEN=(WHEN=(14,1,CH,EQ,C' '),OVERLAY=(3:X'0009')),
IFTHEN=(WHEN=(15,1,CH,EQ,C' '),OVERLAY=(3:X'000A')),
IFTHEN=(WHEN=(16,1,CH,EQ,C' '),OVERLAY=(3:X'000B')),
IFTHEN=(WHEN=(17,1,CH,EQ,C' '),OVERLAY=(3:X'000C')),
IFTHEN=(WHEN=(18,1,CH,EQ,C' '),OVERLAY=(3:X'000D')),
IFTHEN=(WHEN=(19,1,CH,EQ,C' '),OVERLAY=(3:X'000E')),
IFTHEN=(WHEN=(20,1,CH,EQ,C' '),OVERLAY=(3:X'000F')),
IFTHEN=(WHEN=(21,1,CH,EQ,C' '),OVERLAY=(3:X'0010')),
IFTHEN=(WHEN=(22,1,CH,EQ,C' '),OVERLAY=(3:X'0011')),
IFTHEN=(WHEN=(23,1,CH,EQ,C' '),OVERLAY=(3:X'0012')),
IFTHEN=(WHEN=(24,1,CH,EQ,C' '),OVERLAY=(3:X'0013')),
IFTHEN=(WHEN=NONE,OVERLAY=(3:X'0014'))
/*
|
|
|