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

Compare a COMP-3 Value in a sort


IBM Mainframe Forums -> DFSORT/ICETOOL
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
shreevamsi

Active User


Joined: 23 Feb 2006
Posts: 305
Location: Hyderabad,India

PostPosted: Fri May 25, 2007 5:07 pm
Reply with quote

HI,

I was struck up while comparing a comp-3 value from the input file and based on that value, i should write it in one of the output file.
I have a comp-3 value @ 19th position of declaretion S9(9)v99.
Now i need to check the value. If the value is less that 1000,000, i should be writing to one output file. Else into another.
could anybody help me with the sort card??

~Vamsi
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: Sun May 27, 2007 12:42 am
Reply with quote

S9(9)v99 COMP-3 is a 6-byte PD value with two decimal places (implied). Externally an example of the value might be +123456789.01 or -123456789.01. You say you want to compare it to 1000,000. It's not clear exactly what constant you mean by that. Do you mean +001000000.00 or something else?
Back to top
View user's profile Send private message
shreevamsi

Active User


Joined: 23 Feb 2006
Posts: 305
Location: Hyderabad,India

PostPosted: Mon May 28, 2007 6:06 pm
Reply with quote

Hi Frank,
I am expecting a positive value. +001000000.00.

But what if the value is a negative which is less than -10000.

Can't we compare the value including the sign?
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: Mon May 28, 2007 9:59 pm
Reply with quote

Quote:
If the value is less that 1000,000, i should be writing to one output file. Else into another


Here's a DFSORT job to do that:

Code:

//S1    EXEC  PGM=ICEMAN
//SYSOUT    DD  SYSOUT=*
//SORTIN DD DSN=...  input file
//OUT1 DD DSN=...  output file1 (< +001000000.00)
//OUT2 DD DSN=...  output file2 (>= +001000000.00)
//SYSIN    DD    *
  OPTION COPY
  OUTFIL FNAMES=OUT1,INCLUDE=(19,6,PD,LT,+00100000000)
  OUTFIL FNAMES=OUT2,SAVE
/*


Quote:
But what if the value is a negative which is less than -10000.

Can't we compare the value including the sign?


PD values are signed. You can use a negative constant in the INCLUDE statement (-n).

If you're not familiar with DFSORT and DFSORT's ICETOOL, I'd suggest reading through "z/OS DFSORT: Getting Started". It's an excellent tutorial, with lots of examples, that will show you how to use DFSORT, DFSORT's ICETOOL and DFSORT Symbols. You can access it online, along with all of the other DFSORT books, from:

Use [URL] BBCode for External Links
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 -> DFSORT/ICETOOL

 


Similar Topics
Topic Forum Replies
No new posts Need to set RC4 through JCL SORT DFSORT/ICETOOL 5
No new posts How to split large record length file... DFSORT/ICETOOL 10
No new posts Compare only first records of the fil... SYNCSORT 7
No new posts JCL sort card - get first day and las... JCL & VSAM 9
No new posts Sort First/last record of a subset th... DFSORT/ICETOOL 7
Search our Forums:

Back to Top