Page 1 of 1

Convert HEX Data to BIT Display

PostPosted: Fri May 06, 2011 9:08 pm
by gmosley
I'm converting database data to display data for a report and I need to convert a (PL/I) bit datatype to PIC X.
For example, the unload file gives me hex’4D’ which I want to translate into PIC X(8) which should be 01001101.
Can this be done with Syncsort?

Re: Convert HEX Data to BIT Display

PostPosted: Sat May 07, 2011 2:21 am
by Alissa Margulies
Here is one example of how to accomplish this task:
//SORT  EXEC PGM=SORT                                                 
//SORTOUT DD SYSOUT=*                                                 
//SORTIN  DD *                                                       
(                                                                     
//SYSOUT  DD SYSOUT=*                                                 
//SYSIN   DD *                                                       
   INREC BUILD=(1,1,HEX)                                             
   SORT FIELDS=COPY                                                   
   OUTREC IFTHEN=(WHEN=(1,1,CH,EQ,C'0'),BUILD=(C'0000',2,1),HIT=NEXT),
          IFTHEN=(WHEN=(1,1,CH,EQ,C'1'),BUILD=(C'0001',2,1),HIT=NEXT),
          IFTHEN=(WHEN=(1,1,CH,EQ,C'2'),BUILD=(C'0010',2,1),HIT=NEXT),
          IFTHEN=(WHEN=(1,1,CH,EQ,C'3'),BUILD=(C'0011',2,1),HIT=NEXT),
          IFTHEN=(WHEN=(1,1,CH,EQ,C'4'),BUILD=(C'0100',2,1),HIT=NEXT),
          IFTHEN=(WHEN=(1,1,CH,EQ,C'5'),BUILD=(C'0101',2,1),HIT=NEXT),
          IFTHEN=(WHEN=(1,1,CH,EQ,C'6'),BUILD=(C'0110',2,1),HIT=NEXT),
          IFTHEN=(WHEN=(1,1,CH,EQ,C'7'),BUILD=(C'0111',2,1),HIT=NEXT),
          IFTHEN=(WHEN=(1,1,CH,EQ,C'8'),BUILD=(C'1000',2,1),HIT=NEXT),
          IFTHEN=(WHEN=(1,1,CH,EQ,C'9'),BUILD=(C'1001',2,1),HIT=NEXT),
          IFTHEN=(WHEN=(1,1,CH,EQ,C'A'),BUILD=(C'1010',2,1),HIT=NEXT),
          IFTHEN=(WHEN=(1,1,CH,EQ,C'B'),BUILD=(C'1011',2,1),HIT=NEXT),
          IFTHEN=(WHEN=(1,1,CH,EQ,C'C'),BUILD=(C'1100',2,1),HIT=NEXT),
          IFTHEN=(WHEN=(1,1,CH,EQ,C'D'),BUILD=(C'1101',2,1),HIT=NEXT),
          IFTHEN=(WHEN=(1,1,CH,EQ,C'E'),BUILD=(C'1110',2,1),HIT=NEXT),
          IFTHEN=(WHEN=(1,1,CH,EQ,C'F'),BUILD=(C'1111',2,1),HIT=NEXT),
          IFTHEN=(WHEN=(5,1,CH,EQ,C'0'),OVERLAY=(5:C'0000'),HIT=NEXT),
          IFTHEN=(WHEN=(5,1,CH,EQ,C'1'),OVERLAY=(5:C'0001'),HIT=NEXT),
          IFTHEN=(WHEN=(5,1,CH,EQ,C'2'),OVERLAY=(5:C'0010'),HIT=NEXT),
          IFTHEN=(WHEN=(5,1,CH,EQ,C'3'),OVERLAY=(5:C'0011'),HIT=NEXT),
          IFTHEN=(WHEN=(5,1,CH,EQ,C'4'),OVERLAY=(5:C'0100'),HIT=NEXT),
          IFTHEN=(WHEN=(5,1,CH,EQ,C'5'),OVERLAY=(5:C'0101'),HIT=NEXT),
          IFTHEN=(WHEN=(5,1,CH,EQ,C'6'),OVERLAY=(5:C'0110'),HIT=NEXT),
          IFTHEN=(WHEN=(5,1,CH,EQ,C'7'),OVERLAY=(5:C'0111'),HIT=NEXT),
          IFTHEN=(WHEN=(5,1,CH,EQ,C'8'),OVERLAY=(5:C'1000'),HIT=NEXT),
          IFTHEN=(WHEN=(5,1,CH,EQ,C'9'),OVERLAY=(5:C'1001'),HIT=NEXT),
          IFTHEN=(WHEN=(5,1,CH,EQ,C'A'),OVERLAY=(5:C'1010'),HIT=NEXT),
          IFTHEN=(WHEN=(5,1,CH,EQ,C'B'),OVERLAY=(5:C'1011'),HIT=NEXT),
          IFTHEN=(WHEN=(5,1,CH,EQ,C'C'),OVERLAY=(5:C'1100'),HIT=NEXT),
          IFTHEN=(WHEN=(5,1,CH,EQ,C'D'),OVERLAY=(5:C'1101'),HIT=NEXT),
          IFTHEN=(WHEN=(5,1,CH,EQ,C'E'),OVERLAY=(5:C'1110'),HIT=NEXT),
          IFTHEN=(WHEN=(5,1,CH,EQ,C'F'),OVERLAY=(5:C'1111'))           
/*

Re: Convert HEX Data to BIT Display

PostPosted: Mon May 09, 2011 9:18 pm
by gmosley
Thanks, Alissa. I'll give it a try.