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

How to remove numbers from INREC-OVERLAY logic for ICEMAN


IBM Mainframe Forums -> JCL & VSAM
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
Antara Banerjee

New User


Joined: 17 Oct 2008
Posts: 4
Location: Auburn Hills, MI

PostPosted: Sat Oct 18, 2008 3:52 am
Reply with quote

Hi

I need to remove blanks and special characters from my input file for a column which starts at position 1508 and has 48 characters length.

I had the following code in my JCL ->

Code:
//STEPT2  EXEC PGM=ICEMAN                               
//SYSOUT  DD   SYSOUT=*                                 
//SORTIN  DD   DSN=TEST1.FILE,DISP=SHR                   
//SORTOUT DD   DSN=TEST1.OUTPUT,                         
//             DISP=(NEW,CATLG,DELETE),                 
//             UNIT=DISK,SPACE=(CYL,(5,5),RLSE),         
//             DCB=(RECFM=FB,LRECL=2500,BLKSIZE=32500)   
//*                                                     
//SYSIN DD *                                             
  OPTION COPY                                           
  ALTSEQ CODE=(A140,7940,5A40,7C40,7B40,5B40,6C40,B040, 
               5040,5C40,4D40,5D40,6D40,6040,4E40,7E40, 
               6A40,E040,C040,BA40,D040,BB40,7A40,5E40, 
               7D40,6F40,6140,6E40,4B40,4C40,6B40,7F40) 
  INREC IFTHEN=(WHEN=INIT,                               
     OVERLAY=(1508:1508,48,TRAN=ALTSEQ,
              1508:1508,48,SQZ=(SHIFT=LEFT)))


The problem I am facing in my output file is that numeric values are being changed to special characters. What do I do to avoid this ?
Back to top
View user's profile Send private message
Frank Yaeger

DFSORT Developer


Joined: 15 Feb 2005
Posts: 7129
Location: San Jose, CA

PostPosted: Sat Oct 18, 2008 4:09 am
Reply with quote

Well, you didn't say what your data looks like in those 48 characters, but I can take an educated guess at what you're talking about.

Do you mean your 48 characters can have numeric values that can't be distinguished from blanks or special characters? For example:

X'00127C'

is a PD value of +00127, but since you have 7C40 in your ALTSEQ statement, it would be changed to:

X'001240'

If that's the case, how would you possibly expect DFSORT to know which bytes contain blanks or special characters, and which bytes are part of numeric fields? You would have to have some way of distinguishing the two (for example, some pattern that indicates a value is numeric) and let DFSORT know about it before DFSORT could know what to do. Do you have some way of distinguishing the two? If so, what is it?
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


Joined: 23 Nov 2006
Posts: 19244
Location: Inside the Matrix

PostPosted: Sat Oct 18, 2008 6:08 am
Reply with quote

Hello,

As Frank mentioned - you haven't posted what is in those 48 bytes.

Using browse/edit with HEX ON, copy/paste and the "Code" tag to post the contents of a few of the 48-byte values. Explain what needs to be coverted and what needs to remain unchanged and the rules for knowing wh8ich is which.
Back to top
View user's profile Send private message
Antara Banerjee

New User


Joined: 17 Oct 2008
Posts: 4
Location: Auburn Hills, MI

PostPosted: Sat Oct 18, 2008 9:15 pm
Reply with quote

Hi All,

Here is a sample input and output:

Input ->

Code:
20080118Chrysler 300
20080905 Jeep-Commander         
20080923  Jeep_Commander         
20080912  Jeep Grand/Cherokee   
20080606 Chrysler Town & Country
20080905 Chrysler Town & Country


Output -

Code:
¥^^½^££½Chrysler·^^
¥^^½^¾^§JeepCommander     
¥^^½^¾¥·JeepCommander     
¥^^½^¾£¥JeepGrandCherokee 
¥^^½^¶^¶ChryslerTownCountry
¥^^½^¾^§ChryslerTownCountry


The special characters and spaces are getting removed but the existing numbers are also getting converted to some other characters.
Back to top
View user's profile Send private message
Frank Yaeger

DFSORT Developer


Joined: 15 Feb 2005
Posts: 7129
Location: San Jose, CA

PostPosted: Sat Oct 18, 2008 9:51 pm
Reply with quote

The control statements you showed would NOT do that. Things do NOT fit together here. All of your ALTSEQ pairs change something to a blank, yet you show the output as having something changed to a non-blank. It just doesn't make any sense.

When I ran your control statements against that data starting in position 1508 with DFSORT, I got the following output data starting in position 1508:

Code:

20080118Chrysler300           
20080905JeepCommander         
20080923JeepCommander         
20080912JeepGrandCherokee     
20080606ChryslerTownCountry   
20080905ChryslerTownCountry   


There's nothing in your control statements that would change a number e.g. '2' = X'F2' to anything else.

Either you're not showing us the actual data (showing it in hex might help) or there's something you're not telling us.

It might help if you show your //SYSOUT messages for your run.

Also, you can use a job with these control statements to show 1508,48 in hex:

Code:

   OPTION COPY
   INREC BUILD=(1508,48,HEX)
Back to top
View user's profile Send private message
Antara Banerjee

New User


Joined: 17 Oct 2008
Posts: 4
Location: Auburn Hills, MI

PostPosted: Sat Oct 18, 2008 10:48 pm
Reply with quote

Please look at the word document attached below with all screenshots:
Back to top
View user's profile Send private message
Antara Banerjee

New User


Joined: 17 Oct 2008
Posts: 4
Location: Auburn Hills, MI

PostPosted: Sat Oct 18, 2008 11:20 pm
Reply with quote

I'll also attach the HEX output ->

Code:
F2F0F0F8F0F9F1F6D185859740C39694948195848599A14040404040404040
F2F0F0F8F0F9F2F540C49684878540C38193898285997C4040404040404040
F2F0F0F8F0F9F2F740C49684878540D9819440D7898392A4977B4040404040
F2F0F0F8F0F1F1F8C38899A8A293859940F3F0F05B40404040404040404040
F2F0F0F7F1F1F3F040C49684878540D9819440D7898392A4976C4040404040
F2F0F0F7F0F8F1F4C38899A8A293859940D781838986898381B04040404040
F2F0F0F8F0F9F2F340C49684878540D589A399964E40404040404040404040
F2F0F0F8F0F8F0F140C49684878540C79981958440C3819981A581955C4040
F2F0F0F8F0F9F0F5D185859760C39694948195848599404040404040404040
F2F0F0F8F0F9F2F3D18585976DC39694948195848599404040404040404040
F2F0F0F8F0F9F1F2D185859740C79981958461C38885999692858540404040
F2F0F0F8F0F6F0F6C38899A8A293859940E396A695405040C396A495A399A8
F2F0F0F8F0F9F0F5C38899A8A293859940E396A695405040C396A495A399A8
F2F0F0F8F0F9F2F540C4968487856EC3819389828599404040404040404040
F2F0F0F8F0F9F2F5D18585974CC396949781A2A24040404040404040404040
F2F0F0F8F0F9F0F3C38899A8A293859940C1A29785954D5D40404040404040
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10873
Location: italy

PostPosted: Sun Oct 19, 2008 12:08 am
Reply with quote

please please, refrain from using attachments, not everybody can see/download them
reducing the number of people who can help

also, please do not post screenshot images
You are just causing lots of network traffic without any added value

You can get the same result with a text cut and paste ...
for the info You posted ( 4 screen of usable info )
You could have used 24*80*4 bytes instead of 384 Kbytes

also You are not using DFSORT,
the WER prefixed messages show that You are using SYNCSORT
the fact that You are invoking ICEMAN does not mean that You are using DFSORT

I' ll just move the whole thread/topic were it belongs ( the JCL forum )
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


Joined: 23 Nov 2006
Posts: 19244
Location: Inside the Matrix

PostPosted: Sun Oct 19, 2008 1:53 am
Reply with quote

Hello,

Please post the hex values via HEX ON (which will show the actual character with the hex below it - like this:
Code:
 ------------------------------
| ..º_.±Õò |   '  "           
44129608EC444447447444444444444
F071BDEFFD0F000D00F000000000000
 ------------------------------
011000401187226000{000{008I000{
FFFFFFFFFFFFFFFFFFCFFFCFFFCFFFC
0110004011872260000000000890000
 ------------------------------


FWIW, your "bad" values have happened because your "numbers" have been converted from x'Fx' values to x'Bx' values (i.e. x'F0' has become x'B0', etc.)
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


Joined: 23 Nov 2006
Posts: 19244
Location: Inside the Matrix

PostPosted: Sun Oct 19, 2008 3:25 am
Reply with quote

Hello,

Where did you get the hex values you posted in the "flat-hex" format? Is there some reason you did not post the hex for the same records you posted when you presented the problem?

Those values would not be presented as your "bad" values are icon_confused.gif

Please re-post some input, the output from that input, and the HEX ON for the exact same input . . .
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> JCL & VSAM

 


Similar Topics
Topic Forum Replies
No new posts Extracting Variable decimal numbers f... DFSORT/ICETOOL 17
No new posts Sortjoin and Search for a String and ... DFSORT/ICETOOL 1
No new posts Generate random number from range of ... COBOL Programming 3
No new posts Remove leading zeroes SYNCSORT 4
No new posts Finding faulty logic Subscript out of... COBOL Programming 5
Search our Forums:

Back to Top