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



On Mon, 1 Apr 2002, James Rich wrote:
>
> I want to use the C function toupper() in an RPG program.  I'm not sure
> what I need to code to allow me to use it.  It is a little tricky because
> toupper() expects ints as arguments and I don't think RPG will let me pass
> a non-int as an argument.
>

True...  RPG won't let you use an alphanumeric var as an int, you'll need
to convert it.  So, I'd just wrap the C toupper() in an RPG procedure that
converts the data type for you.

Here's an example that I whipped up (which works):


     H DFTACTGRP(*NO) ACTGRP(*NEW) BNDDIR('QC2LE')

     D toupper         PR             1A
     D   character                    1A   const

     D test1           S             10A
     D x               S             10I 0

     c                   eval      test1 = 'fUnKy 123t'
     c                   for       x = 1 to %len(test1)
     c                   eval      %subst(test1:x:1) =
     c                                   toupper(%subst(test1:x:1))
     c                   endfor

     c                   dsply                   test1
     c                   eval      *inlr = *on

      *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
      *  toupper() -- convert a character to uppercase (requires QC2LE)
      *
      *    args:
      *          character = character to convert to uppercase
      *
      * returns:
      *          uppercase character
      *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     P toupper         B                   export
     D toupper         PI             1A
     D   character                    1A   const

     d C_toupper       PR            10I 0 ExtProc('toupper')
     d   character                   10I 0 value

     D dsCvt           DS
     D   dsCvtChar                    1A
     D   dsCvtInt                     3U 0 overlay(dsCvtChar:1)

     c                   eval      dsCvtChar = character
     c                   eval      dsCvtInt = C_toupper(dsCvtInt)
     c                   return    dsCvtChar

     P                 E




As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

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.