|
----- Original Message -----
From: "Rory Hewitt" <roryhewitt@xxxxxxxxx>
To: "RPG programming on the IBM i / System i" <rpg400-l@xxxxxxxxxxxx>
Subject: Re: Pointer vs. BIF performance (was: Getting into pointers)
Date: Wed, 12 Aug 2009 09:53:29 -0700
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
This is the RPG programming on the IBM i / System i (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 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.