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



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


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.