× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: RE: Character String Manipulation
  • From: Buck Calabro <mcalabro@xxxxxxxxxxxx>
  • Date: Thu, 23 Apr 1998 11:27:21 -0400
  • Organization: commsoft

On Thursday, April 23, 1998 9:21 AM, Scott Swaim 
[SMTP:scott71@hpnc.com] wrote:
>     I am sorry for repeating this queston.  I have already asked 
and
>     I got answers back but my E-mail program crashed and I lost all 
of
>     my saved mail.
>
> I need to find a routine that will take a 30 char string and change
> it to uppercase as well as remove all punctuation.  This will be
> used to create a Key field of my item numbers.
>
> Example:
>
>         Original:    Gip 3.18-1.59 Ic656
>         New :        GIP318159IC656
>

Scott,
Here's one bit I saved from Bruce Vining.  I'd always used XLATE, but
I like his method better...

     F* Remove punctuation from a string and convert to 
     F* upper case 
     F* Upper case routine courtesy of Bruce Vining and Midrange-L 
     F* 
     IREQCTL      DS 
     I I            1                     B   1   40TYPE 
     I I            0                     B   5   80CCSID 
     I I            0                     B   9  120CASE 
     I                                       13  22 RESERV 
     IMISC        DS 
     I I            19                    B   1   40LENGTH 
     I I            0                     B   5   80BYTPRV 
     I I            'Gip 3.18-1.59 Ic656'     9  33 DATAIN 
     C           *LIKE     DEFN DATAOT    FINAL            Final 
result
     C* Convert to upper case 
     C                     MOVE *LOVAL    RESERV 
     C                     CALL 'QLGCNVCS' 
     C                     PARM           REQCTL 
     C                     PARM           DATAIN 
     C                     PARM           DATAOT 25 
     C                     PARM           LENGTH 
     C                     PARM           BYTPRV 
     C* Remove punctuation 
     C           1         DO   LENGTH    S       50       Point to 
src
     C           1         SUBSTDATAOT:S  CHAR    1        Test 
charact
     C           CHAR      IFNE ' ' 
                       Punctuation
     C           CHAR      ANDNE'.' 
                       Punctuation
     C           CHAR      ANDNE'-' 
                       Punctuation
     C                     CAT  CHAR:0    FINAL 
     C                     ENDIF 
     C                     ENDDO                           Point to 
src
     C* Show results 
     C           DATAIN    DSPLY 
     C           DATAOT    DSPLY 
     C           FINAL     DSPLY 
     C* Bye bye 
     C                     MOVE '1'       *INLR 
     C                     RETRN 

>Alternatively you could use the RPG XLATE opcode to perform 
uppercasing,
>but using the API provides valid uppercasing in all national 
languages
>supported by the AS/400 (the CCSID of 0 in REQCTL) without you 
having
>to be concerned with the language currently in use.
>
>Bruce Vining


Buck Calabro
Commsoft, Albany, NY
mailto:mcalabro@commsoft.net

+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to MIDRANGE-L@midrange.com.
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---


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-2024 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.