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 Find & Replace string in CA-SORT mrgnndhmk CA Products 1 Fri Mar 30, 2018 12:58 am Creation of Datasets dynamically on t... Raghu M N DFSORT/ICETOOL 8 Fri Mar 16, 2018 12:56 am Find a string in PS file opened in br... mukkas CLIST & REXX 3 Sat Feb 24, 2018 2:15 pm 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

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