|
|
| Author |
Message |
balukanna
New User
Joined: 09 Apr 2008 Posts: 30 Location: chennai
|
|
|
|
Hi..
I need to squeeze out blanks, but one space between the words in two field, the field length should remain same and to do this on records after header (header first 2 line).
File Layout:
SRNO- 10
NAME- 10
DESC- 30
COMMENT - 30
For Ex:
In field DESC and COMMENT the values are like this
Input
DESC
****
| Code: |
AAAAAA
ZZZ Y
SSS BBBB |
COMMENT
********
Output
DESC
*****
| Code: |
AAAAAA
ZZZ Y
SSS BBBB |
COMMENT
********
|
|
| Back to top |
|
 |
References
|
|
 |
Frank Yaeger
DFSORT Moderator
Joined: 15 Feb 2005 Posts: 4684 Location: San Jose, CA
|
|
|
|
Your description is rather confusing and you mention two headers that you don't show in your example, but if you want to squeeze out all but one blank between fields starting with record 3, you can use a DFSORT job like this:
| Code: |
//S1 EXEC PGM=ICEMAN
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=... input file (FB/80)
//SORTOUT DD DSN=... output file (FB/80)
//SYSIN DD *
OPTION COPY
INREC IFOUTLEN=80,
IFTHEN=(WHEN=INIT,OVERLAY=(81:SEQNUM,8,ZD)),
IFTHEN=(WHEN=(81,8,ZD,GT,+2),
OVERLAY=(1:1,80,SQZ=(SHIFT=LEFT,MID=C' ')))
/*
|
|
|
| Back to top |
|
 |
balukanna
New User
Joined: 09 Apr 2008 Posts: 30 Location: chennai
|
|
|
|
Hi Frank,
Sorry for the confusion, will give you an example below with some more clarity...
More than one blank should be squeezed in DESC and COMMENTs only, Field length is DESC (from 21 to 50 (30)), COMMENTS (from 51 to 80 (30) ), Header two line.
INPUT FILE:
| Code: |
SRNO NAME DESC COMMENTS
***************************************************************
01 XXX ABC RES TYU AAA BBB CCC
02 YYY ADD WE DDDDD DD
NO XXXX FF XXXX
03 ZZZ TTTTT RRR R |
OUTPUT FILE:
| Code: |
SRNO NAME DESC COMMENTS
*************************************************************
01 XXX ABC RES TYU AAA BBB CCC
02 YYY ADD WE DDDDD DD
NO XXXX FF XXXX
03 ZZZ TTTTT RRR R
|
__________________
Balukanna
Hope this will be clear |
|
| Back to top |
|
 |
Frank Yaeger
DFSORT Moderator
Joined: 15 Feb 2005 Posts: 4684 Location: San Jose, CA
|
|
|
|
If the two header records can be identified as having 'SRNO' and '****' in positions 1-4, then you can use a DFSORT job like this:
| Code: |
//S1 EXEC PGM=ICEMAN
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=... input file (FB/80)
//SORTOUT DD DSN=... output file (FB/80)
//SYSIN DD *
OPTION COPY
INREC IFTHEN=(WHEN=(1,4,CH,NE,C'SRNO',AND,1,4,CH,NE,C'****'),
OVERLAY=(21:21,30,SQZ=(SHIFT=LEFT,MID=C' '),
51:51,30,SQZ=(SHIFT=LEFT,MID=C' ')))
/*
|
If the two header records can only be identified as the first two records, then you can use a DFSORT job like this:
| Code: |
//S2 EXEC PGM=ICEMAN
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=... input file (FB/80)
//SORTOUT DD DSN=... output file (FB/80)
//SYSIN DD *
OPTION COPY
INREC IFOUTLEN=80,
IFTHEN=(WHEN=INIT,OVERLAY=(81:SEQNUM,8,ZD)),
IFTHEN=(WHEN=(81,8,ZD,GT,+2),
OVERLAY=(21:21,30,SQZ=(SHIFT=LEFT,MID=C' '),
51:51,30,SQZ=(SHIFT=LEFT,MID=C' ')))
/*
|
|
|
| Back to top |
|
 |
balukanna
New User
Joined: 09 Apr 2008 Posts: 30 Location: chennai
|
|
|
|
Thanks frank..
Will Try it... |
|
| Back to top |
|
 |
|
|
|