BinaryFormat.ListBinaryFormat.List

SintaxeSyntax

BinaryFormat.List(binaryFormat as function, optional countOrCondition as any) as function

SobreAbout

Retorna um formato binário que lê uma sequência de itens e retorna uma list.Returns a binary format that reads a sequence of items and returns a list. O parâmetro binaryFormat especifica o formato binário de cada item.The binaryFormat parameter specifies the binary format of each item. Há três maneiras de determinar o número de itens lidos:There are three ways to determine the number of items read:

  • Se o countOrCondition não for especificado, o formato binário será lido até que não haja mais itens.If the countOrCondition is not specified, then the binary format will read until there are no more items.
  • Se o countOrCondition for um número, o formato binário lerá aquele número de itens.If the countOrCondition is a number, then the binary format will read that many items.
  • Se o countOrCondition for uma função, essa função será invocada para cada item lido.If the countOrCondition is a function, then that function will be invoked for each item read. A função retorna true para continuar e false para interromper a leitura de itens.The function returns true to continue, and false to stop reading items. O item final está incluído na lista.The final item is included in the list.
  • Se a countOrCondition for um formato binário, a contagem de itens deverá anteceder à lista e o formato especificado será usado para ler a contagem.If the countOrCondition is a binary format, then the count of items is expected to precedes the list, and the specified format is used to read the count.

Exemplo 1Example 1

Bytes lidos até o fim dos dados.Read bytes until the end of the data.

let
    binaryData = #binary({1, 2, 3}),
    listFormat = BinaryFormat.List(BinaryFormat.Byte)
in
    listFormat(binaryData)
11
22
33

Exemplo 2Example 2

Dois bytes lidos.Read two bytes.

let
    binaryData = #binary({1, 2, 3}),
    listFormat = BinaryFormat.List(BinaryFormat.Byte, 2)
in
    listFormat(binaryData)
11
22

Exemplo 3Example 3

Bytes lidos até que o valor de byte seja maior ou igual a dois.Read bytes until the byte value is greater than or equal to two.

let
    binaryData = #binary({1, 2, 3}),
    listFormat = BinaryFormat.List(BinaryFormat.Byte, (x) => x < 2)
in
    listFormat(binaryData)
11
22