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



Jeffrey,
The article I was talking about is at this link. It does the job and has the
source that you can cut/paste into your editor of choice.

http://www.mcpressonline.com/mc?1@xxxxxxxxxxxxxxxx@.6ae9a226

-Bob


-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Hans Boldt
Sent: Tuesday, June 01, 2004 8:18 AM
To: rpg400-l@xxxxxxxxxxxx
Subject: Re: trimming non-numerics

Jeffrey Lee wrote:
> I was wondering how I could strip any non numberic characters from a set
of numbers submitted via a html form. For example (504) 555-5555 would be
5045555555 or 504-555-5555 would be 5045555555   Like %trim does with spaces
is there something to deal with non-numberics?
> --

If you were programming in Python, you could do this with the simple 
expression (''.join([c for c in source if c.isdigit()])). ;-)

But since this is an RPG list, you probably want an RPG answer, right?

Others have suggested using some combination of the built-in functions 
%XLATE and %REPLACE. Personally, I thinks that's overkill. I'd recommend 
the obvious approach of simply looping over the source string selecting 
the digits out of the string (just like what the above Python expression 
does):

------------------------------------------------------------------
D i               s             10i 0
D source          s             50a   varying
D target          s             50a   varying
  /free
     source = 'jafgjh934hdfg94k3ghsd0jdfg0345jdfg';
     target = '';

     // Extract digits out of source string
     for i = 1 to %len(source);
        if '0' <= %subst(source:i:1) and %subst(source:i:1) <= '9';
           target += %subst(source:i:1);
        endif;
     endfor;

     // Display results
     dsply source;
     dsply target;
     *inlr = *on;
  /end-free
------------------------------------------------------------------

Oh yeah, if you're not on V5R2, replace the middle statement of the loop 
with:

           target = target + %subst(source:i:1);

Cheers! Hans

--
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.




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.