|
This works for me: Clear Target_Field; %SUBST(Target_Field: %INTH((%SIZE(Source_Field) - %LEN(%TRIM(Source_Field))) / 2 + 1): %LEN(%TRIM(Source_Field))) = %TRIM(Source_Field); Francis Lapeyre IS Dept. Programmer/Analyst Stewart Enterprises, Inc. E-mail: flapeyre@xxxxxxxx -----Original Message----- From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Holden Tommy Sent: Monday, March 20, 2006 1:47 PM To: RPG programming on the AS400 / iSeries Subject: RE: %subst as a result. That plus %len is determined at runtime where %size is determined at compile time. In other words %size is a "pretty" way to hard-code the field size. All in all I use %len as the rule rather than the exception...just my 2 coppers... Thanks, Tommy Holden -----Original Message----- From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of rick baird Sent: Monday, March 20, 2006 1:40 PM To: RPG programming on the AS400 / iSeries Subject: Re: %subst as a result. FYI, I'm not sure where but I remember something about %len() being a better fit than %size() for this getting the length of a field. %size is number of bytes occupied, not necessarily the actual length of the field. I think it's possibly just for numerics though - for instance, a packed field would have a %size of 4, but a %len of 7. similar shenanigans with integers, binary, etc. at any rate, I've always used %len when looking at the length of any field, alpha or numeric, and have never been disappointed. On 3/20/06, rick baird <rick.baird@xxxxxxxxx> wrote: > your divide by two could result in an intermediate answer with decimal > positions. > > decimal positions are invalid for the param of %subst() > > try this > > d $beg s 3s 0 > > C eval $beg = (%size(Title) - (%size(%trim((cTitle)) / 2) > > C eval %subst(Title:$beg) = %trim(ctitle) > > > > > > On 3/20/06, Booth Martin <booth@xxxxxxxxxxxx> wrote: > > %subst as a result. > > > > I can't figure out two problems I believe are simply solved by others. > > > > I wish to populate a field with a constant, and center the text. > > > > Lets say we have a field called Title that is 40/alpha. > > Lets say we have a constant field of cTitle, with a value of 'Screen Title" > > > > I know how to do this with several lines of code, but I'd like to use %subst > > > > I believe this should work, but it doesn't compile: > > > > C eval %subst(Title: > > C ((%size(Title) - %size(cTitle) / 2) > > C = cTitle > > > > This does not compile and I can't see why not. > > > > If it did compile I would then ask my other question. How does one also > > clear the target field? Must that be done first? > > > > -- > > ----------------------------------- > > Booth Martin > > http://martinvt.com > > ----------------------------------- > > -- > > 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. > > > > > -- 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 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.