Message54253
Logged In: YES
user_id=341410
As you state, it already supports packing and unpacking a
variable-lengthed type: strings.
In the use cases I've had and seen for (un)packing strings
with struct, it is the most common to define a static format
code, and use that all the time. That is, you see things
like ">HLLHB25s", that become string constants in a module.
On the _very rare_ occasion where people want more
flexibility in their types, I have seen both the use of
fixed and variable pascal strings...
def packit(arg1, arg2, arg3, strng):
return struct.pack(">LHH%ip"%len(strng), arg1, arg2,
arg3, strng)
I would not expect any pascal-string-like packing of a large
integer, though it is possible. I do expect that most
people have similar use cases as I, and would pre-define
their struct formatting code. In the case of other similar
requests (long to string, string to long via a base256
representation, etc.) for use in cryptography, I expect that
the regularity of structures used in cryptography would
almost certainly result in formatting codes being module
constants.
To sum up, both in the case for the 's' and 'p' format
codes, and the proposed 'g'/'G' formatting codes, the vast
majority of use cases pre-define the length of the string
and large integer on a per-structure basis via "25s", "25p",
or "25g". Rarely are the lengths truely variable in the
case of "%ip"%len(strng). |
|
Date |
User |
Action |
Args |
2007-08-23 16:08:24 | admin | link | issue1023290 messages |
2007-08-23 16:08:24 | admin | create | |
|