BinaryFormat.ListBinaryFormat.List

СинтаксисSyntax

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

СведенияAbout

Возвращает двоичный формат, который считывает последовательность элементов и возвращает list.Returns a binary format that reads a sequence of items and returns a list. Параметр binaryFormat задает двоичный формат каждого элемента.The binaryFormat parameter specifies the binary format of each item. Число считанных элементов можно определить тремя способами:There are three ways to determine the number of items read:

  • Если countOrCondition не указан, то двоичный формат будет считываться до тех пор, пока больше не останется элементов.If the countOrCondition is not specified, then the binary format will read until there are no more items.
  • Если countOrCondition является числом, то двоичный формат считает это количество элементов.If the countOrCondition is a number, then the binary format will read that many items.
  • Если countOrCondition является функцией, то эта функция будет вызываться для каждого считанного элемента.If the countOrCondition is a function, then that function will be invoked for each item read. Функция возвращает true, чтобы продолжить, и false, чтобы прекратить чтение элементов.The function returns true to continue, and false to stop reading items. Последний элемент включен в список.The final item is included in the list.
  • Если countOrCondition является двоичным форматом, то ожидается, что число элементов предшествует списку, а для чтения счетчика используется указанный формат.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.

Пример 1Example 1

Считывание байтов до конца данных.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

Пример 2Example 2

Считывание 2 байтов.Read two bytes.

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

Пример 3Example 3

Считывание байтов, пока байтовое значение меньше 2.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