IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Identify and write records containing accent characters


IBM Mainframe Forums -> SYNCSORT
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
brindhamohan

New User


Joined: 11 May 2016
Posts: 12
Location: USA

PostPosted: Mon Nov 03, 2025 11:41 pm
Reply with quote

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
View user's profile Send private message
Joerg.Findeisen

Senior Member


Joined: 15 Aug 2015
Posts: 1424
Location: Bamberg, Germany

PostPosted: Tue Nov 04, 2025 12:28 am
Reply with quote

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
View user's profile Send private message
Joerg.Findeisen

Senior Member


Joined: 15 Aug 2015
Posts: 1424
Location: Bamberg, Germany

PostPosted: Tue Nov 04, 2025 1:09 am
Reply with quote

Can be simplified a bit more I just recognized.
Code:
INCLUDE=(1,79,SS,RE,C'^[- &[:alnum:]]+[ ]*$')
Back to top
View user's profile Send private message
brindhamohan

New User


Joined: 11 May 2016
Posts: 12
Location: USA

PostPosted: Tue Nov 04, 2025 1:13 am
Reply with quote

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
View user's profile Send private message
brindhamohan

New User


Joined: 11 May 2016
Posts: 12
Location: USA

PostPosted: Tue Nov 04, 2025 1:22 am
Reply with quote

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
View user's profile Send private message
prino

Senior Member


Joined: 07 Feb 2009
Posts: 1322
Location: Vilnius, Lithuania

PostPosted: Tue Nov 04, 2025 1:38 am
Reply with quote

Why are you posting Syncsort problems in the DFSORT forum?
Back to top
View user's profile Send private message
brindhamohan

New User


Joined: 11 May 2016
Posts: 12
Location: USA

PostPosted: Tue Nov 04, 2025 1:42 am
Reply with quote

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
View user's profile Send private message
brindhamohan

New User


Joined: 11 May 2016
Posts: 12
Location: USA

PostPosted: Tue Nov 04, 2025 3:17 am
Reply with quote

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
View user's profile Send private message
Joerg.Findeisen

Senior Member


Joined: 15 Aug 2015
Posts: 1424
Location: Bamberg, Germany

PostPosted: Tue Nov 04, 2025 10:56 am
Reply with quote

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
View user's profile Send private message
sergeyken

Senior Member


Joined: 29 Apr 2008
Posts: 2263
Location: USA

PostPosted: Tue Nov 04, 2025 7:24 pm
Reply with quote

The TS mentioned in the beginning about his LRECL=300.
Adjustment of this sample may be needed to avoid further puzzlement.
Back to top
View user's profile Send private message
brindhamohan

New User


Joined: 11 May 2016
Posts: 12
Location: USA

PostPosted: Tue Nov 04, 2025 10:54 pm
Reply with quote

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
View user's profile Send private message
Joerg.Findeisen

Senior Member


Joined: 15 Aug 2015
Posts: 1424
Location: Bamberg, Germany

PostPosted: Wed Nov 05, 2025 1:12 am
Reply with quote

In principle, you can also use FINDREP or ALTSEQ for this. The number of lines of code is roughly the same.
Back to top
View user's profile Send private message
View previous topic : : View next topic  
Post new topic   Reply to topic All times are GMT + 6 Hours
Forum Index -> SYNCSORT

 


Similar Topics
Topic Forum Replies
No new posts Filter records where condition is in ... SYNCSORT 6
No new posts Identify Number of Multivolume Dataset All Other Mainframe Topics 5
No new posts Extract records for a specific condit... DFSORT/ICETOOL 25
No new posts Write record twice based on condition... SYNCSORT 7
No new posts Writing next records after a match an... Compuware & Other Tools 5
Search our Forums:


Back to Top