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



Thanks Steve - I was just about to start writing this - it will save me a lot of time.

Thanks again.


Jon Paris

www.partner400.com
www.SystemiDeveloper.com

On May 23, 2016, at 11:13 PM, Steve Richter <stephenrichter@xxxxxxxxx> wrote:

maybe this helps Jon. A procedure that applies an edit mask to an input
text string. The mask text is applied char by char to the output text. If
the mask character is blank, apply the next input text character. Otherwise
copy the mask character to the output as is.

** ------------------------ coreTest5 -------------------------
** edit mask proc tester.
h option(*SrcStmt)

** ----------------------- coreTest5 --------------------------
** edit mask proc tester.
d coreTest5 pr extpgm('coreTest5')

** ----------------------- coreTest5 --------------------------
** edit mask proc tester.
d coreTest5 pi

d textIn s 256a varying
d mask s 256a varying
d textOut s 256a varying
d ch50 s 50a
/free
dsply 'ApplyEditMask procedure test results:' ;

// phone number mask.
textIn = '9735551212' ;
mask = '( ) - ' ;
textOut = ApplyEditMask(textIn: mask) ;
ch50 = textOut + ' textIn:' + textIn +
' mask:' + mask ;
dsply ch50 ;

// ssn mask.
textIn = '111223333' ;
mask = ' - - ' ;
textOut = ApplyEditMask(textIn: mask) ;
ch50 = textOut + ' textIn:' + textIn +
' mask:' + mask ;
dsply ch50 ;

*inlr = '1' ;
return ;

/end-free

** ----------------------- ApplyEditMask -----------------------
pApplyEditMask...
p b
dApplyEditMask...
d pi 256a varying
d InText 256a const varying
d InMask 256a const varying

d res s 256a
d mx s 10i 0
d tx s 10i 0
d rx s 10i 0
d ch1 s 1a
/free
// copy to result according to mask characters.
rx = 0 ;
tx = 0 ;
for mx = 1 to %len(inMask) ;
ch1 = %subst(inMask:mx:1) ;
if ch1 = ' ' ;
rx += 1 ;
tx += 1 ;
%subst(res:rx:1) = %subst(inText:tx:1) ;
else ;
rx += 1 ;
%subst(res:rx:1) = ch1 ;
endif ;
endfor ;

// return the edited result.
return %subst(res:1:rx) ;
/end-free
p e


On Mon, May 23, 2016 at 6:26 PM, Jon Paris <jon.paris@xxxxxxxxxxxxxx> wrote:

I know it is Monday but in theory it is a holiday here …

I need to edit some character fields - simply edits similar to what would
be needed for a date.

My brain tells me there are functions to do this but edit words and codes
only apply to numerics and even among the MI functions they are all numeric.

Am I mismembering? or do I really have to do it the hard way? Seems such a
trivial requirement which is why I’m convinced I’m missing something.


Jon Paris

www.partner400.com
www.SystemiDeveloper.com

--
This is the RPG programming on the IBM i (AS/400 and 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.

Please contact support@xxxxxxxxxxxx for any subscription related
questions.
--
This is the RPG programming on the IBM i (AS/400 and 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.

Please contact support@xxxxxxxxxxxx for any subscription related questions.


As an Amazon Associate we earn from qualifying purchases.

This thread ...

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.