Core Function PackSingle
From Sputnik Wiki
(Difference between revisions)
(→format) |
m (5 revisions) |
||
(2 intermediate revisions by one user not shown) | |||
Line 16: | Line 16: | ||
For example you may only a repeater or * if the format code is either : | For example you may only a repeater or * if the format code is either : | ||
+ | |||
a, A, Z, h, H, z, b, B | a, A, Z, h, H, z, b, B | ||
Line 77: | Line 78: | ||
=== Example === | === Example === | ||
+ | |||
+ | See [[Core Function Pack|Pack( )]] for examples since almost everything there works here (just differance is how its done) | ||
+ | |||
+ | Simple example | ||
<syntaxhighlight lang="sputnik"> | <syntaxhighlight lang="sputnik"> | ||
+ | // Pack 1337 into binary | ||
+ | $a = PackSingle("i", 1337); | ||
+ | // Pack 777 into binary | ||
+ | $b = PackSingle("i", 777); | ||
+ | // Combine them into a single binary | ||
+ | $c = bin($a, $b); // We could use $a . $b | ||
+ | // Read the first number | ||
+ | say UnpackSingle("i", $c); | ||
+ | // Read the first number (must use index) | ||
+ | say UnpackSingle("i", $c, 4); | ||
+ | |||
+ | // PRINTS | ||
+ | // 1337 | ||
+ | // 777 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[Category:Core Function]] | [[Category:Core Function]] |
Latest revision as of 12:37, 14 June 2015
PackSingle( <format>, <value> )
Contents |
Description
Pack a single value into a binary array.
Parameters
format
Read Pack( ) to learn about format codes.
Some format codes may not exist in PackSingle() as they do in Pack().
For example you may only a repeater or * if the format code is either :
a, A, Z, h, H, z, b, B
Any other format code trying to use a reapter or * will result in error.
Currently implemented formats are:
Code Description a NUL-padded string (ASCII) A SPACE-padded string (ASCII) Z NUL-padded string (ASCII) a NUL-terminator will be added to the end regardless b A bit string (ascending bit order inside each byte, like the Vec() function) B A bit string (descending bit order inside each byte) h Hex string, low nibble first H Hex string, high nibble first c signed ASCII char C unsigned ASCII char U signed UNICODE char (always 16 bit, machine byte order) W unsigned UNICODE char (always 16 bit, machine byte order) s signed short (always 16 bit, machine byte order) S unsigned short (always 16 bit, machine byte order) n unsigned short (always 16 bit, big endian byte order) v unsigned short (always 16 bit, little endian byte order) i signed integer (machine dependent size and byte order) I unsigned integer (machine dependent size and byte order) l signed long (always 32 bit, machine byte order) L unsigned long (always 32 bit, machine byte order) q signed quad (64-bit) value (always 64 bit, machine byte order) Q unsigned quad (64-bit) value (always 64 bit, machine byte order) N unsigned long (always 32 bit, big endian byte order) V unsigned long (always 32 bit, little endian byte order) f float (machine dependent size and representation) d double (machine dependent size and representation) t A signed pointer T A unsigned pointer u A uuencoded string z7 string encoded as UTF8 with 1-byte null terminator z6 string encoded as UTF7 with 1-byte null terminator z5 string encoded as UTF16 with 2-byte null terminator z4 string encoded as BigEndianUnicode with 2-byte null terminator z3 string encoded as UTF32 big endian with 4-byte null terminator z2 string encoded as UTF32 with 4-byte null terminator z1 string encoded as ASCII with 1-byte null terminator z0 string encoded as ASCII without a null terminator
value
The value to be used in the packing.
Return Value
Success: Returns the new binary variable.
Failure: Returns null.
Remarks
This is almost the same as Pack( ) but designed to only do one operation thus avoiding the need for excessive parsing and what not the result is more speed.
Example
See Pack( ) for examples since almost everything there works here (just differance is how its done)
Simple example
// Pack 1337 into binary $a = PackSingle("i", 1337); // Pack 777 into binary $b = PackSingle("i", 777); // Combine them into a single binary $c = bin($a, $b); // We could use $a . $b // Read the first number say UnpackSingle("i", $c); // Read the first number (must use index) say UnpackSingle("i", $c, 4); // PRINTS // 1337 // 777