Hi Jay,
        Let me tell you what I understood of your problem.
You need to remove the leading zeros in a numeric data and display it in a 
character string (basically to left align).
 
I've faced that problem and I devised a round about method, as I couldn't 
find a straightforward way. This could be an ugly method but certainly 
works. 

        These are the steps I'd suggest.
                1. Check the numeric variable for zeros for all the digits 
you care on display (i.e., if you believe that you              will 
receive a zero filled value and care to display only one zero search in 
for first 5 positions). 

                        When you find the position in the string not zero 
move the data from that position till the end of the            string 
(which  you know already) to a temp variable that is of character data 
type. Length of temp                    variable can be same as the source 
variable (X(6) in this case) . Where by you will have the leading zeros 
trimmed and left aligned character data in the temp variable. 
 
                Find the sample code for this in the attached file " IF 
Statement.txt".

                2. Using the String statement you can formulate your 
required output string with the formatted data.

Find the sample code in the attached file " String Statement.txt ".


 

Best wishes,
Sundhararaman.
Larsen & Toubro Infotech Ltd.,

This document is classified as :
( ) L&T Infotech Proprietary            ( ) L&T Infotech Confidential
( ) L&T Infotech Internal Use only              (x) L&T Infotech General 
Business 




"Jay Sulzmann" <jsulzmann@xxxxxxxxxxx>
Sent by: cobol400-l-bounces@xxxxxxxxxxxx
16/08/2004 08:58 PM
Please respond to COBOL Programming on the iSeries/AS400

 
        To:     "COBOL Programming on the iSeries/AS400" 
<cobol400-l@xxxxxxxxxxxx>
        cc: 
        Subject:        [COBOL400-L] Conversion of numeric data to character 
format?


Dear COBOL experts,

Is there any equivalent of the following in COBOL, or an easier way to do 
it than fooling around with numeric-edited fields?

CustNbr is a 6-digit signed (USAGE IS DISPLAY) field. I want to put the 
Customer Number (CustNbr) into message data (MessageData) to pass to the 
QMHSNDPM API. If the customer number is 123,and I do the following using 
free-format RPG-IV, 

    MessageData = %char( CustNbr );

the input is 000123 and the output would be 123 (left-justified and all). 
The message looks like Customer Number 123 is not on file.

The only way I know how to do this in COBOL results in 
Customer Number       123 is not on file.

Cheers -- Jay

=================================
Jay Sulzmann
AS/400 Senior Programmer/Analyst
AS/400 Certified RPG IV Developer
 
Hainey Business Systems LLC
8 East Canal Street
Dover, PA  17315
 
Tel:  717-718-9601 Ext. 231
Fax:  717-292-9474
AIM: bluejay0827 
Web: www.hbs-inc.com
____________________________________
Providing E-Business, EDI, AS/400
Development and related services nationwide.
_______________________________________________
This is the COBOL Programming on the iSeries/AS400 (COBOL400-L) mailing 
list
To post a message email: COBOL400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/cobol400-l
or email: COBOL400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/cobol400-l.


______________________________________________________________________



______________________________________________________________________
Note.
-----
This code for a 4 digit numeric field. you should use change this logic for 
your 6 digit field accordingly.
   
            IF CustNbr  OF CUST-REC (1:1) = '0'
                  IF CustNbr  OF CUST-REC (2:1) = '0'
                        IF CustNbr  OF CUST-REC (3:1) = '0'
                              IF CustNbr  OF CUST-REC (4:1) = '0'
                                    MOVE CustNbr  OF CUST-REC (4:1) TO 
TMP-CustNbr
                                    MOVE TMP-CustNbr TO CustNbr OF CUST-REC1
                              ELSE
                                    MOVE CustNbr  OF CUST-REC1 (4:1) TO 
TMP-CustNbr
                                    MOVE TMP-CustNbr TO CustNbr OF CUST-REC1
                              END-IF
                        ELSE
                          MOVE CustNbr OF CUST-REC1 (3:2) TO TMP-CustNbr
                          MOVE TMP-CustNbr TO CustNbr OF CUST-REC1
                      END-IF
                ELSE
                   MOVE CustNbr OF CUST-REC1 (2:3) TO TMP-CustNbr
                   MOVE TMP-CustNbr TO CustNbr OF CUST-REC1
                END-IF
             ELSE
               MOVE CustNbr OF CUST-REC1 (1:4) TO TMP-CustNbr
               MOVE TMP-CustNbr TO CustNbr OF CUST-REC1
          END-IF.



MOVE 'Customer Number ' TO VAR1.

MOVE ' is not on file' TO VAR2.

STRING  
        VAR1 DELIMITED BY SIZE

        CustNbr OF CUST-REC1 DELIMITED BY SPACES
                
        VAR2 DELIMITED BY SIZE

        INTO MSG-VAR
END-STRING. 

**** 
**** the following statement displays the concatenated output statement like 
**** Customer Number 123 is not on file
**** 

DISPLAY MSG-VAR 


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2022 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.