|
But it will probably perform badly.It's true.
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 ,wrote:
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>
there.
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
%char(field3);
So it could be lke this -
result = %char(field1) + '-' + %trimr(field2) + '-' +
field
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
belowplus variable fields exceed than 10 results will be same as given
theOn 15 Jan 2014 21:12, "William Howie" <William.Howie@xxxxxxxxxxxxxxxx>theoretically
wrote:
Hello all,with dashes between the values
I have a question about string manipulation. Here's the scenario:
* Three fields I'm combining into one 10-character text field
* The three fields have these attributes:fields, and then using %TRIM. From what I can see of the data, the
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
significant values of each field, complete with dashes, would
fit into my 10-character field, even though the lengths of any one of
reasonthree is as long by itself as my result field.
When I run my program, I get the value of the first field, with a dashafter 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
sincethat the dash and the third field are getting cut off, but for the lifeof
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,
andit
is 10 long, just like my result field. The reason may be reallyobvious,
but I'm sure not seeing it. Can anyone out there enlighten me on whythis
is working this way? Thanks in advance.from
Bill Howieindividual or entity to which it is addressed. This email may contain
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
information that is proprietary or privileged, confidential and exempt
disclosure under applicable law. If you are not the intended recipient,you
are hereby notified that any dissemination, distribution or copying ofthis
communication is strictly prohibited. If you received this email by
accident, please notify the sender immediately and destroy this email
(RPG400-L)all copies of it.
--
This is the RPG programming on the IBM i (AS/400 and iSeries)
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 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.