|
View previous topic :: View next topic
|
| Author |
Message |
brindhamohan
New User
Joined: 11 May 2016 Posts: 12 Location: USA
|
|
|
|
I want to identify and write records containing accent characters to the output file.
Input file LRECL is 300 and the accent characters may present in position 71 to 100 of the record. The accent characters like "À", "Í", "Ñ", "Ó", "Á", "É" has different hex values.
CHAPMÀN
URÍAS
CASTAÑON
GIRÓN
HERNÁNDEZ
RIVÉ
DUNN1
I want to write DUNN(which has valid alpha numeric) characters in one file and rest of the records with accent characters in another file.
//STEP15 EXEC PGM=ICEMAN
//SORTIN DD DSN=INPUT1,DISP=SHR
//SORTOF01 DD DSN=OUTPUT1,
// DISP=(NEW,CATLG,DELETE),
// DCB=(DSORG=PS,RECFM=FB,LRECL=300,BLKSIZE=0),
// SPACE=(CYL,(5,10),RLSE),
// UNIT=DISK
//SORTOF02 DD DSN=OUTPUT2,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(5,10),RLSE),
// DCB=(DSORG=PS,RECFM=FB,LRECL=300,BLKSIZE=0),
// UNIT=DISK
//SYSIN DD *
SORT FIELDS=COPY
OUTFIL FNAMES=SORTOF01,INCLUDE=(71,30,SS,EQ,X'C1',OR,
71,30,SS,EQ,X'C2',OR,
71,30,SS,EQ,X'C3',OR,
71,30,SS,EQ,X'C4',OR,
71,30,SS,EQ,X'C5',OR,
71,30,SS,EQ,X'C6',OR,
71,30,SS,EQ,X'C7',OR,
71,30,SS,EQ,X'C8',OR,
71,30,SS,EQ,X'C9',OR,
71,30,SS,EQ,X'D1',OR,
71,30,SS,EQ,X'D2',OR,
71,30,SS,EQ,X'D3',OR,
71,30,SS,EQ,X'D4',OR,
71,30,SS,EQ,X'D5',OR,
71,30,SS,EQ,X'D6',OR,
71,30,SS,EQ,X'D7',OR,
71,30,SS,EQ,X'D8',OR,
71,30,SS,EQ,X'D9',OR,
71,30,SS,EQ,X'E2',OR,
71,30,SS,EQ,X'E3',OR,
71,30,SS,EQ,X'E4',OR,
71,30,SS,EQ,X'E5',OR,
71,30,SS,EQ,X'E6',OR,
71,30,SS,EQ,X'E7',OR,
71,30,SS,EQ,X'E8',OR,
71,30,SS,EQ,X'E9',OR,
71,30,SS,EQ,X'F0',OR,
71,30,SS,EQ,X'F1',OR,
71,30,SS,EQ,X'F2',OR,
71,30,SS,EQ,X'F3',OR,
71,30,SS,EQ,X'F4',OR,
71,30,SS,EQ,X'F5',OR,
71,30,SS,EQ,X'F6',OR,
71,30,SS,EQ,X'F7',OR,
71,30,SS,EQ,X'F8',OR,
71,30,SS,EQ,X'F9',OR,
71,30,SS,EQ,X'60',OR,
71,30,SS,EQ,X'50',OR,
71,30,SS,EQ,X'40')
OUTFIL FNAMES=SORTOF02,SAVE
/*
The include cond has the hex value of small letter and capital letter, hyphen, ambersand and space. All these are considered valid characters.
This code is writing everything to output1 and output2 is empty. Can someone guide me what is wrong with the code. Thanks! |
|
| Back to top |
|
 |
Joerg.Findeisen
Senior Member

Joined: 15 Aug 2015 Posts: 1424 Location: Bamberg, Germany
|
|
|
|
Simple as
| Code: |
//WHATEVER EXEC PGM=ICEMAN
//SORTIN DD *
CHAPMÀN
URÍAS
CASTAÑON
GIRÓN
HERNÁNDEZ
RIVÉ
DUNN1
/*
//SYSOUT DD SYSOUT=*
//SORTOUT DD SYSOUT=*
//SORTOUT DD SYSOUT=*
//ACCENTS DD SYSOUT=*
//SYSIN DD *
OPTION COPY,VLSCMP
OUTFIL FNAMES=(SORTOUT),
INCLUDE=(1,79,SS,RE,C'^[ ]*[- &[:alnum:]]+[ ]*$')
OUTFIL FNAMES=(ACCENTS),SAVE
END
/* |
|
|
| Back to top |
|
 |
Joerg.Findeisen
Senior Member

Joined: 15 Aug 2015 Posts: 1424 Location: Bamberg, Germany
|
|
|
|
Can be simplified a bit more I just recognized.
| Code: |
| INCLUDE=(1,79,SS,RE,C'^[- &[:alnum:]]+[ ]*$') |
|
|
| Back to top |
|
 |
brindhamohan
New User
Joined: 11 May 2016 Posts: 12 Location: USA
|
|
|
|
| Joerg.Findeisen wrote: |
Simple as
| Code: |
//WHATEVER EXEC PGM=ICEMAN
//SORTIN DD *
CHAPMÀN
URÍAS
CASTAÑON
GIRÓN
HERNÁNDEZ
RIVÉ
DUNN1
/*
//SYSOUT DD SYSOUT=*
//SORTOUT DD SYSOUT=*
//SORTOUT DD SYSOUT=*
//ACCENTS DD SYSOUT=*
//SYSIN DD *
OPTION COPY,VLSCMP
OUTFIL FNAMES=(SORTOUT),
INCLUDE=(1,79,SS,RE,C'^[ ]*[- &[:alnum:]]+[ ]*$')
OUTFIL FNAMES=(ACCENTS),SAVE
END
/* |
|
Hi,
Thank you. But it didn't work. Failed for the below error.
SYSIN :
OPTION COPY,VLSCMP
OUTFIL FNAMES=(SORTOUT),
INCLUDE=(1,79,SS,RE,C' * :ALNUM: + *$')
*
OUTFIL FNAMES=(ACCENTS),SAVE
END
WER813I INSTALLATION OPTIONS IN MFX LOAD LIBRARY WILL BE USED
WER251A INCLUDE/OMIT INVALID COND
WER578I SORTL INSTRUCTION NOT USED; REASON CODE=FE
WER211B SYNCSMF CALLED BY SYNCSORT; RC=0000 |
|
| Back to top |
|
 |
brindhamohan
New User
Joined: 11 May 2016 Posts: 12 Location: USA
|
|
|
|
| Joerg.Findeisen wrote: |
Can be simplified a bit more I just recognized.
| Code: |
| INCLUDE=(1,79,SS,RE,C'^[- &[:alnum:]]+[ ]*$') |
|
This didnt work either.
Code:
//SYSOUT DD SYSOUT=*
//SORTOUT DD SYSOUT=*
//ACCENTS DD SYSOUT=*
//SYSIN DD *
OPTION COPY,VLSCMP
OUTFIL FNAMES=(SORTOUT),
INCLUDE=(1,79,SS,RE,C'^[- &[:ALNUM:]]+[ ]*$')
OUTFIL FNAMES=(ACCENTS),SAVE
END
/*
Error:
SYSIN :
OPTION COPY,VLSCMP
OUTFIL FNAMES=(SORTOUT),
INCLUDE=(1,79,SS,RE,C' - & :ALNUM: + *$')
*
OUTFIL FNAMES=(ACCENTS),SAVE
END
WER813I INSTALLATION OPTIONS IN MFX LOAD LIBRARY WILL BE USED
WER251A INCLUDE/OMIT INVALID COND
WER578I SORTL INSTRUCTION NOT USED; REASON CODE=FE
WER211B SYNCSMF CALLED BY SYNCSORT; RC=0000 |
|
| Back to top |
|
 |
prino
Senior Member

Joined: 07 Feb 2009 Posts: 1322 Location: Vilnius, Lithuania
|
|
|
|
| Why are you posting Syncsort problems in the DFSORT forum? |
|
| Back to top |
|
 |
brindhamohan
New User
Joined: 11 May 2016 Posts: 12 Location: USA
|
|
|
|
| prino wrote: |
| Why are you posting Syncsort problems in the DFSORT forum? |
I'm Sorry. How do i change the forum now? Should i delete this and create one under SYNCSORT or is there a way to move this to the other forum? |
|
| Back to top |
|
 |
brindhamohan
New User
Joined: 11 May 2016 Posts: 12 Location: USA
|
|
|
|
| brindhamohan wrote: |
| prino wrote: |
| Why are you posting Syncsort problems in the DFSORT forum? |
I'm Sorry. How do i change the forum now? Should i delete this and create one under SYNCSORT or is there a way to move this to the other forum? |
Looks like i cannot delete this post in this form. Admin, could you please delete this post in this forum. I will create a new one under SYNCSORT. Thanks! |
|
| Back to top |
|
 |
Joerg.Findeisen
Senior Member

Joined: 15 Aug 2015 Posts: 1424 Location: Bamberg, Germany
|
|
|
|
A portable version:
| Code: |
//WHATEVER EXEC PGM=SORT
//SORTIN DD *
CHAPMÀN
URÍAS
CASTAÑON
GIRÓN
HERNÁNDEZ
RIVÉ
DUNN1
A - z & 0 -9
/*
//SYSOUT DD SYSOUT=*
//SORTOUT DD SYSOUT=*
//ACCENTS DD SYSOUT=*
//SYSIN DD *
OPTION COPY
INREC IFTHEN=(WHEN=INIT,OVERLAY=(81:1,30,TRAN=LTOU)),
IFTHEN=(WHEN=INIT,
OVERLAY=(81:81,30,SQZ=(SHIFT=LEFT,PREBLANK=C'&-ABCDEFGH'))),
IFTHEN=(WHEN=INIT,
OVERLAY=(81:81,30,SQZ=(SHIFT=LEFT,PREBLANK=C'IJKLMNOPQR'))),
IFTHEN=(WHEN=INIT,
OVERLAY=(81:81,30,SQZ=(SHIFT=LEFT,PREBLANK=C'STUVWXYZ12'))),
IFTHEN=(WHEN=INIT,
OVERLAY=(81:81,30,SQZ=(SHIFT=LEFT,PREBLANK=C'34567890')))
OUTFIL FNAMES=(SORTOUT),
INCLUDE=(81,30,CH,EQ,C' '),
BUILD=(1,30)
OUTFIL FNAMES=(ACCENTS),SAVE,
BUILD=(1,30)
END |
|
|
| Back to top |
|
 |
sergeyken
Senior Member

Joined: 29 Apr 2008 Posts: 2263 Location: USA
|
|
|
|
The TS mentioned in the beginning about his LRECL=300.
Adjustment of this sample may be needed to avoid further puzzlement. |
|
| Back to top |
|
 |
brindhamohan
New User
Joined: 11 May 2016 Posts: 12 Location: USA
|
|
|
|
| Joerg.Findeisen wrote: |
A portable version:
| Code: |
//WHATEVER EXEC PGM=SORT
//SORTIN DD *
CHAPMÀN
URÍAS
CASTAÑON
GIRÓN
HERNÁNDEZ
RIVÉ
DUNN1
A - z & 0 -9
/*
//SYSOUT DD SYSOUT=*
//SORTOUT DD SYSOUT=*
//ACCENTS DD SYSOUT=*
//SYSIN DD *
OPTION COPY
INREC IFTHEN=(WHEN=INIT,OVERLAY=(81:1,30,TRAN=LTOU)),
IFTHEN=(WHEN=INIT,
OVERLAY=(81:81,30,SQZ=(SHIFT=LEFT,PREBLANK=C'&-ABCDEFGH'))),
IFTHEN=(WHEN=INIT,
OVERLAY=(81:81,30,SQZ=(SHIFT=LEFT,PREBLANK=C'IJKLMNOPQR'))),
IFTHEN=(WHEN=INIT,
OVERLAY=(81:81,30,SQZ=(SHIFT=LEFT,PREBLANK=C'STUVWXYZ12'))),
IFTHEN=(WHEN=INIT,
OVERLAY=(81:81,30,SQZ=(SHIFT=LEFT,PREBLANK=C'34567890')))
OUTFIL FNAMES=(SORTOUT),
INCLUDE=(81,30,CH,EQ,C' '),
BUILD=(1,30)
OUTFIL FNAMES=(ACCENTS),SAVE,
BUILD=(1,30)
END |
|
It worked. Thank you so much! |
|
| Back to top |
|
 |
Joerg.Findeisen
Senior Member

Joined: 15 Aug 2015 Posts: 1424 Location: Bamberg, Germany
|
|
|
|
| In principle, you can also use FINDREP or ALTSEQ for this. The number of lines of code is roughly the same. |
|
| Back to top |
|
 |
|
|
 |
All times are GMT + 6 Hours |
|