binaryEncode

Typefunction
DictionaryLCS
LibraryLiveCode Script
Syntax
binaryEncode(<formatsList>, <dataStringList>)
Summary

Encodes a set of values into a set of binary values.

Introduced1.0
OSmac, windows, linux, ios, android
Platformsdesktop, server, mobile
Parameters
NameTypeDescription
formatsList

The formatsList consists of one or more dataTypes, each followed optionally by an amount.

A dataType is one of the following letters:

  • c: encode amount numbers as signed 1-byte integers
  • C: encode amount numbers as unsigned 1-byte integers
  • s: encode amount numbers as signed 2-byte integers in host byte order
  • S: encode amount numbers as unsigned 2-byte integers in host byte order
  • i: encode amount numbers as signed 4-byte integers in host byte order
  • I: encode amount numbers as unsigned 4-byte integers in host byte order
  • n: encode amount numbers as signed 2-byte integers in network byte order
  • N: encode amount numbers as signed 4-byte integers in network byte order
  • m: encode amount numbers as unsigned 2-byte integers in network byte order
  • M: encode amount numbers as unsigned 4-byte integers in network byte order
  • f: encode amount numbers as single-precision floating-point numbers
  • d: encode amount numbers as double-precision floating-point numbers
  • x: encode amount null characters

The amount is an integer or * and specifies the encoding in the following way:

  • If the dataType is a, A, b, B, h, or H, the amount specifies the number of characters or groups of the dataString to use; extra characters are ignored. The * character Encodes the rest of the data in the current dataString. If no amount is specified, the dataType is used for one character.
  • If the dataType is c, C, s, S, i, I, n, N, m, M, f, or d, the amount specifies the number of dataStrings to encode. The * character Encodes the rest of the dataStrings. If no amount is specified, the dataType is used for one dataString.
  • If the dataType is x, the amount specifies how many nulls to place in the returned value.
dataStringList

A comma-separated list of dataStrings. Each dataString is a string, or an expression that evaluates to a string.

Example
binaryEncode("a","Q") -- returns "Q"
binaryEncode("A5","QED") -- returns "QED  "
binaryEncode("N2a12x",firstNum,secondNum,labelString,"nothing")
charToNum(binaryEncode("B*","01111111")) -- returns 127
Values
NameTypeDescription
return

The binaryEncode function returns the binary string representation of the dataStrings.

The result

Although the x dataType places nulls in the resulting string regardless of the contents of its corresponding dataString, you still must provide a dataString for instances of x that appear in the formatsList. The binaryEncode function disregards the contents of the dataString used for the dataType x, so you can use any value.

RelatedKeyword: string, character, characters
Function: numToChar, format
Glossary: return, binary file, value, null, encode, binary data, hexadecimal
Control Structure: function
Description

Use the binaryEncode function to encode one or more values as binary data.

The binary data format produced by binaryEncode is similar to the format produced by the "pack()" function of the Perl programming language.

If you don't specify a number with the a, A, b, B, h, or H dataTypes, one character is encoded. If the dataType normally takes more than one character, trailing zeroes are added to make up the required number of characters. For example, H requires two characters, so binaryEncode("H","3") Encodes the hexadecimal number 30, adding a zero to the end to make the dataString two characters long.

Tagstext processing