Portal | Manuals | References | Downloads | Info | Programs | JCLs | Mainframe wiki | Quick Ref

Author Message
vidyaa

New User

Joined: 02 May 2008
Posts: 77
Location: chennai

 Posted: Tue Aug 19, 2008 10:19 am    Post subject: how to find the count and divide by that many zeros hi, i have an variable decared as 03 WS-SAFECRT PIC 9(4). the values can be like WS-SAFECRT = 1234, WS-SAFECRT = 0102, WS-SAFECRT=0045 i need to take the valid values of the variable (i.e) remove the leading zeros and take the length of the vaibable and divide by 1000,1000,100 corresponding to the original length of the variable if WS-SAFECRT = 1234 then RESULT = WS-SAFECRT/10000 (since lenght of 1234 is 4 hence dividing by 10000) WS-SAFECRT = 0102 then RESULT = WS-SAFECRT/1000 (since lenght of 0102 is 3 hence dividing by 1000) WS-SAFECRT = 0045 then RESULT = WS-SAFECRT/100 (since lenght of 0045 is 2 hence dividing by 100) how can this be done in cobol

dick scherrer

Site Director

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

Posted: Tue Aug 19, 2008 11:03 am    Post subject:

Hello,

 Code: IF WS-SAFECRT > 999 COMPUTE THE-RESULT = WS-SAFECRT / 10000
and so on . . .
Escapa

Senior Member

Joined: 16 Feb 2007
Posts: 1399
Location: IL, USA

 Posted: Tue Aug 19, 2008 3:05 pm    Post subject: Hi Vidya, below is the logic am giving to you on that line you can build code divvalue=1 temp=yourno do until temp > = 1 { divvalue=divvalue*10 temp=yourno/10 yourno=temp } eg if yourno is 1234 then divvalue will be 10000 if yourno is 0123 then divvalue will be 1000 if yourno is 0 then divvalue will be 1 ie no zeros ( )
mytags

New User

Joined: 28 Apr 2008
Posts: 63
Location: US

 Posted: Tue Aug 19, 2008 4:23 pm    Post subject: Hi Using if condition is the easiest ways.As Dick said. Thanks Mytags
Escapa

Senior Member

Joined: 16 Feb 2007
Posts: 1399
Location: IL, USA

 Posted: Tue Aug 19, 2008 4:30 pm    Post subject: but then it will be hard coded and only work for number for which if is coded above is generic logic works for any no of digits
dick scherrer

Site Director

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

Posted: Tue Aug 19, 2008 9:48 pm    Post subject:

Hello,

 Quote: but then it will be hard coded and only work for number for which if is coded
I believe you misunderstand. There will be only 1 value hard-coded for each 999, 99, and 9. This will run much more efficiently than the loop which will use many cpu cycles unnecessarily.

"Any number of digits" should not be an issue as the field only holds 4 digits.

The loop would not be obvious to many who read the code. It is best to implement code that is correct, easily maintainable, and does not use more system resource than needed.
vidyaa

New User

Joined: 02 May 2008
Posts: 77
Location: chennai

 Posted: Wed Aug 20, 2008 3:02 pm    Post subject: Hi Dick, Thank you so much and it works great.
dick scherrer

Site Director

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

 Posted: Wed Aug 20, 2008 9:01 pm    Post subject: Reply to: how to find the count and divide by that many zero Hi Vidya, You're welcome Thank you for letting us know it is working. d
 All times are GMT + 6 Hours
 Page 1 of 1

Search our Forum:

 Topic Author Forum Replies Posted Similar Topics Skip records depends on count lakshmiibmmainframes DFSORT/ICETOOL 5 Sun Dec 24, 2017 9:51 pm ISMF Difference between volume count ... upendrasri IBM Tools 2 Tue Dec 05, 2017 12:40 pm How to write Rexx program to size and... sreejeshcs CLIST & REXX 14 Thu Oct 12, 2017 7:26 am column with count of rows within dist... ronald wouterson DB2 4 Sun Sep 17, 2017 9:48 pm Updating the Trailer count in variabl... satheshbabur DFSORT/ICETOOL 6 Wed Aug 30, 2017 9:49 pm

 © 2003-2017 IBM MAINFRAME Software Support Division
 Job Vacancies | Forum Rules | Bookmarks | Subscriptions | FAQ | Polls | Contact Us