<snip>Or instead of giving us the size of the length prefix, maybe
something
like %addr(myVaryFld: *DATA) and %size(myVaryFld: *DATA) or
%len(myVaryFld:*MAX)</snip>
That works too...as long as there is *some* mechanism for handling the
different prefix/index size I'm good...
Thanks,
Tommy Holden
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[
mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Scott Klement
Sent: Thursday, May 17, 2007 2:10 PM
To: RPG programming on the AS400 / iSeries
Subject: Re: Max length of a VARYING field
Hi Peter,
Why VARYING(x) as opposed to VARYINGx? The former implies (to me
anyway) that I can put whatever I want in there -- VARYING(1),
VARYING(7), etc. Or maybe that's the intention; after all, why not?
I prefer VARYING4, VARYING8, etc, myself. However, Barbara said that
they (the team at IBM) liked the parenthesis better. here's her
message:
http://archive.midrange.com/rpg400-l/200705/msg00392.html
Let's be flexible. Aren't all these 2-byte, 4-byte integers simply
those sizes because they're closer to what the hardware can handle?
Hardware typically is able to handle 1, 2, 4 and 8 bit integers
natively. Note that when you define an integer in RPG (data types B, I
and U) it must be one of those 4 sizes. Why would the prefix be
different?
Bearing in mind that allowing other lengths (3,5,6,7 bytes) would make
VARYING strings significantly slower, my question to you is this: What
would be the advantage? Can you think of a situation where you'd want
to use a 3-byte prefix, but a 4-byte wouldn't work just as well? Or a
5 byte where an 8 byte wouldn't work just as well? What would be the
advantage of the other sizes?
Later responses mention a %indexsize BIF. Index? It's a current
length
subfield isn't it?. How about %sizelen, or %lensize or something?
Unless it's considered an index to the end of the string...but I think
most people think of it as the current length, hence the %len BIF.
I think something like %varysize() or %vsize() would be better than
%sizelen() which seems ambiguous to me.
Or instead of giving us the size of the length prefix, maybe something
like %addr(myVaryFld: *DATA) and %size(myVaryFld: *DATA) or
%len(myVaryFld:*MAX)
As an Amazon Associate we earn from qualifying purchases.