If you set the size of your variable to the largest size you would need
then you would only need one routine that you could move any size
variable into and remove the trailing spaces.  The routine below was
designed to remove the trailing spaces from a 30 byte variable - the
only downside to expanding the variable size to 1000 or more would be
table processing cycles (not very expensive).

Perform 2420-inspect-it thru 2420-exit              
   Varying sub from 1 by 1 until sub > 30.          

2420-inspect-it.                                
    compute suba = 30 - sub.                    
    compute subB = sub - 1.                     
    if your-Input-variable(sub:suba) = spaces            
       Move replace-it to your-output-variable   
       move 31 to sub                          
    end-if.                                     
2420-EXIT.   
EXIT.             


John A Arnold
(301) 214-8939
jarnold@xxxxxxxxxxxxx


-----Original Message-----
From: cobol400-l-request@xxxxxxxxxxxx
[mailto:cobol400-l-request@xxxxxxxxxxxx] 
Sent: Thursday, August 19, 2004 1:00 PM
To: cobol400-l@xxxxxxxxxxxx
Subject: COBOL400-L Digest, Vol 2, Issue 91

Send COBOL400-L mailing list submissions to
        cobol400-l@xxxxxxxxxxxx

To subscribe or unsubscribe via the World Wide Web, visit
        http://lists.midrange.com/mailman/listinfo/cobol400-l
or, via email, send a message with subject or body 'help' to
        cobol400-l-request@xxxxxxxxxxxx

You can reach the person managing the list at
        cobol400-l-owner@xxxxxxxxxxxx

When replying, please edit your Subject line so it is more specific
than "Re: Contents of COBOL400-L digest..."


Today's Topics:

   1. Re:  Conversion of numeric data to character format?
      (MichaelQuigley@xxxxxxxxxx)
   2.  Problem with relative file (Aseem Sehgal)
   3. RE:  Conversion of numeric data to character format? (Jon Paris)
   4. RE:  Conversion of numeric data to character format?
      (Terry Grider)


----------------------------------------------------------------------

message: 1
date: Wed, 18 Aug 2004 14:05:37 -0400
from: MichaelQuigley@xxxxxxxxxx
subject: Re: [COBOL400-L] Conversion of numeric data to character
        format?

   Jon,

   I think that works for a single case, but you can't write a generic
   routine unless you always are converting the same size field.  Or can
you?
    I would rather avoid writing ugly COBOL code if it can easily be
avoided.

   Original message:
   ------------------------------

   Since RPG provides a simple, elegant solution and is an ILE language,
why
   not simply write this (and any other similar routines in RPG?).  It
is not
   as if you have to buy the compiler - you own it if you own the COBOL
one.
    I see no point in writing ugly COBOL code when the RPG option is
   available.
-------------- next part --------------

Checked by AVG Anti-Virus (http://www.grisoft.com).
Version: 7.0.262 / Virus Database: 264.6.3 - Release Date: 8/16/2004

------------------------------

message: 2
date: Wed, 18 Aug 2004 20:22:03 +0200
from: "Aseem Sehgal" <saseem@xxxxxxxxxxx>
subject: [COBOL400-L] Problem with relative file

Hi,
Has anybody seen such a problem on Iseries. We have a CL which calls the
cobol program , in the CL we create a file with following command
CRTPF XXLIB/XXFILE RCDLEN(250)
OVRDBF F05TRAV TOFILE(XXLIB/XXFILE)
CALL COBOLXYZ

In the Cobol program COBOLXYZ we have following defination for the file
SELECT F05TRAV ASSIGN TO DATABASE-F05TRAV 
       ORGANIZATION IS RELATIVE           
       ACCESS MODE IS RANDOM              
       RELATIVE KEY IS F05-KEY.           

And just  before opening of file the code we call to a CL to do a CLRPFM
on file XXLIB/XXFILE (I know it is not required but we have done it as
this is a generic customer requirement)

And then we have following code
OPEN OUTPUT F05TRAV.                     
CLOSE       F05TRAV.
OPEN I-O    F05TRAV.

The problem is that as soon as the code reaches point where we do OPEN
OUTPUT F05TRAV the size of file XXLIB/XXFILE starts increasing at a
phenomenal rate and it eats all the disk space and there is no way to
end the job , only solution is a PWRDWNSYS. 


Please suggest if you have seen this problem earlier.
The Iseries is running V5R2M0.

Regards
Aseem




------------------------------

message: 3
date: Wed, 18 Aug 2004 20:41:54 -0400
from: "Jon Paris" <Jon.Paris@xxxxxxxxxxxxxx>
subject: RE: [COBOL400-L] Conversion of numeric data to character
        format?

 >>    I think that works for a single case, but you can't write a
generic
routine ....

I agree that writing a generic routine is not always possible.  I
honestly
don't recall the full details of the original request, but in some cases
it
is possible. For example - a generic trim routine could be written by
utilizing descriptors to determine the size of the field passed and then
doing %trim(%subst(......  of course the RPG is a little uglier.

If only COBOL had implemented a more generic FUNCTION option with some
form
of prototyping (not the 400 folks fault I know) then it would be much
easier
to tap into the RPG and C functions directly.

I have always found COBOL's string handling to be a royal pain in the
proverbial.

Jon Paris
Partner400
www.Partner400.com




------------------------------

message: 4
date: Thu, 19 Aug 2004 10:53:24 -0500
from: "Terry Grider" <Terry.Grider@xxxxxxxxxxxxxxxx>
subject: RE: [COBOL400-L] Conversion of numeric data to character
        format?


       WORKING-STORAGE SECTION.
       01  WS-WORK-FIELDS.
           03  CUSTNBR                           PIC S9(6) USAGE
DISPLAY.
           03  MESSAGE-DATA                PIC X(30).
           03  L                                        PIC S9(5) VALUE
+0.
       PROCEDURE DIVISION.
           MOVE SPACES TO MESSAGE-DATA.
           MOVE 123.00 TO CUSTNBR.
           INSPECT CUSTNBR TALLYING L FOR LEADING '0'.
           STRING 'CUSTOMER NUMBER '
                  CUSTNBR(L + 1:6 - L) INTO MESSAGE-DATA.


-----Original Message-----
From: Jay Sulzmann [mailto:jsulzmann@xxxxxxxxxxx]
Sent: Monday, August 16, 2004 10:28 AM
To: COBOL Programming on the iSeries/AS400
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.




------------------------------

_______________________________________________
This is the COBOL Programming on the iSeries/AS400 (COBOL400-L) digest
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.



End of COBOL400-L Digest, Vol 2, Issue 91
*****************************************


As an Amazon Associate we earn from qualifying purchases.

This thread ...


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.