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



Probably a very slight improvement. But on a string this long, is it worth
it?

Of course, you could simply use %xlate, specifying a string of control
characters for arg 1 and a string of blanks for arg 2:

D badchars C
x'0102030405060708090A0B0C0D10111213141516171819'

srcdta = %xlate( badchars : *blanks : SRCDTA );

I didn't put all of the badchars string in there, but you'd include all the
characters from x'01' to x'39' (not including x'0E' and x'0F', since they
are shift-in and shift-out DBCS characters).

I *think* using *blanks for arg 2 works, but you might need to define a
string of blanks the same length as badchars.

Rory

On Wed, Aug 12, 2009 at 7:42 AM, David Gibbs <david@xxxxxxxxxxxx> wrote:

This question is mostly out of idle curiosity ...

I've got a simple routine that is designed to replace any 5250 control
characters in a RPG source file with blank.

for p = 1 to %len(%trim(SRCDATA));
if %subst(SRCDATA:p:1) < x'40';
%subst(SRCDATA:p:1) = *blank;
endif;
endfor;

Would there be any performance benefit if I used a pointer to update the
field?

D charPtr S *
D char S 1A based(charPtr)

.
.
.

for p = 0 to %len(%trim(SRCDATA));
charPtr = %addr(SRCDATA)+p;
if char < x'40';
char = *blank;
endif;
endfor;

Thanks!

david


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.