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



But it will probably perform badly.
It's true.
I agree at all with Vern.

CM14


On Tue, Jan 21, 2014 at 1:43 PM, Vernon Hamberg <vhamberg@xxxxxxxxxxxxxxx>wrote:

Hi Sunil

Yes, that will end up the same as what I suggested.

But it will probably perform badly.

If result is fixed-length, then you'd need to do the %trim's on it - and
that means extra unneeded processing.

Also, there is no need for %trim(result) in the first EVAL, since there
was nothing in it to start with - only blanks.

If result is variable-length, you don't know the %trim on it at all. It
is possible that the compiler will optimize it, because it knows the
length of the text, but I don't know that for certain.

As to the numeric fields - the %char BIF already returns a
variable-length value, so there is absolutely no need for the %trim.
It'll probably just slow it down.

I guess I don't see the value in splitting the concatenation into
several statements - the single statement I presented is pretty clear.
And the single statement requires no %trim on the field, result.

By the way, you don't NEED to use the EVAL opcode in this case, but it
doesn't hurt.

Assigning values between fixed and varying can be a trap - there is some
explanation in the ILE RPG Reference, and I'll try to summarize it here -

1. Assigning varying to fixed - the varying value is assigned and padded
with blanks in the fixed variable
2. Assigning fixed to varying - the value from the varying is assigned
to the fixed, up to the length as specified in the first 2 bytes

Concatenating variable-length - this is really nice - only the amount of
text specified by the length portion is concatenated - no trailing
anything, whether blanks or otherwise.

I worked on an application that did a lot of webdta = %trim(webdta) +
thenextpiece - and did this with a fixed-length variable for webdta.

When I changed webdta to be variable-length, the application just flew,
in comparison. The statement became this -

webdta = webdta + thenext piece;

or

webdta += the next piece;

HTH
Vern

On 1/21/2014 12:12 PM, Sunil Patil wrote:
Hi Vern ,
Yes u r right , so can we do like this

EVAL Result=%trim (result)+% trim (% char (field1))+'-'
EVAL result= % trim (result)+%trim (field2)+'-'
Eval result =% trim (result)+% trim (% char (field3))
On 21 Jan 2014 20:54, "Vernon Hamberg" <vhamberg@xxxxxxxxxxxxxxx>
wrote:

Hi Sunil

Defining the result field as varying will not help - if you put a
fixed-length variable's value into a varying-length variable, it gets
all the trailing blanks.

Now I think Bill needs to use the %trimr on his second field, which
apparently is fixed-length. That should fix it. As someone else
mentioned, %char will return a varying result, so no %trim is needed
there.

So it could be lke this -

result = %char(field1) + '-' + %trimr(field2) + '-' +
%char(field3);

Maybe!!

HTH
Vern

On 1/21/2014 11:23 AM, Sunil Patil wrote:
Can you try this with defining result field as varying , but result
field
plus variable fields exceed than 10 results will be same as given
below
On 15 Jan 2014 21:12, "William Howie" <William.Howie@xxxxxxxxxxxxxxxx>
wrote:
Hello all,

I have a question about string manipulation. Here's the scenario:


* Three fields I'm combining into one 10-character text field
with dashes between the values
* The three fields have these attributes:

o First field is numeric, length 10, no decimals

o Second is character, length 50

o Third is numeric, length 10, no decimals

I'm using the %CHAR BIF to convert the numeric fields into character
fields, and then using %TRIM. From what I can see of the data, the
significant values of each field, complete with dashes, would
theoretically
fit into my 10-character field, even though the lengths of any one of
the
three is as long by itself as my result field.
When I run my program, I get the value of the first field, with a dash
after it, and the value of the second, and that's it, like so:
Field1: 36
Field2: 002
Field3: 3208

Becomes "36-2" in my result field. Now, I'm guessing there's a
reason
that the dash and the third field are getting cut off, but for the life
of
me I don't know what it is. If it was some sort of size constraint, I
would think that all I would see is the first field to begin with,
since
it
is 10 long, just like my result field. The reason may be really
obvious,
but I'm sure not seeing it. Can anyone out there enlighten me on why
this
is working this way? Thanks in advance.
Bill Howie
Software Developer
AmTrust North America




Bill Howie
Software Developer
AmTrust North America
800 Superior Avenue E, 18th Floor
Cleveland, OH 44114
216.328.6292

________________________________
Confidentiality Notice: This email message is intended only for the
individual or entity to which it is addressed. This email may contain
information that is proprietary or privileged, confidential and exempt
from
disclosure under applicable law. If you are not the intended recipient,
you
are hereby notified that any dissemination, distribution or copying of
this
communication is strictly prohibited. If you received this email by
accident, please notify the sender immediately and destroy this email
and
all copies of it.
--
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.

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



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





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.