БуферДвоичныхДанных / BinaryDataBuffer

Коллекция байтов фиксированного размера с возможностью произвольного доступа и изменения по месту. Размер буфера формально не ограничен, но поскольку все данные буфера полностью находятся в оперативной памяти, при попытке создать буфер слишком большого размера доступной памяти может оказаться недостаточно, в результате чего будет вызвано исключение. Поэтому при работе с буферами двоичных данных необходимо соотносить их размер с доступным объемом оперативной памяти. При создании буфера можно указать порядок байтов, который будет использован для операций с целыми числами. При этом если буфер не создан явно, а получен с помощью вызова метода другого объекта, то порядок байтов в полученном буфере будет унаследован от порядка байтов, заданного для того объекта, метод которого вызывается. Например, если буфер получен с помощью вызова метода ПрочитатьВБуферДвоичныхДанных, то порядок байтов в полученном буфере будет равен значению свойства ПорядокБайтов. Возможен также более сложный случай наследования порядка байтов. Если буфер получен с помощью вызова метода ПолучитьБуферДвоичныхДанных, то порядок байтов у полученного буфера будет выбираться из объекта ЧтениеДанных, из которого был получен объект РезультатЧтенияДанных. Порядок байтов, заданный для объекта ЧтениеДанных, будет использован во всех объектах, полученных на его основании.

Свойства

ПорядокБайтов / ByteOrder

Доступ: Чтение/Запись

Тип значения: ПорядокБайтов (ByteOrder)

Текущий порядок байтов. Влияет на операции чтения и записи целых чисел в буфер.

Размер / Size

Доступ: Чтение

Тип значения: Число (Number)

Размер буфера в байтах.

ТолькоЧтение / ReadOnly

Доступ: Чтение

Тип значения: Булево (Boolean)

Значение Истина указывает, что данный буфер предназначен только для чтения.

Методы

Записать / Write()

Заменить значения, начиная с заданной позиции, значениями из заданного буфера.

Параметры

  • position: Позиция, начиная с которой требуется записать содержимое буфера.

  • bytes: Байты, которыми нужно заполнить часть буфера.

  • number: Количество байт, которые требуется заменить.

ЗаписатьЦелое16 / WriteInt16()

Записать целое 16-битное положительное число в заданную позицию.

Параметры

  • position: Позиция, на которой требуется записать число.

  • value: Число, которое требуется записать. Если значение не помещается в 16 бит, будет вызвано исключение.

  • byteOrder: Порядок байтов, который будет использован для кодировки числа при записи в буфер. Если не установлен, то будет использован порядок байтов, заданный для текущего экземпляра БуферДвоичныхДанных. Значение по умолчанию: Неопределено.

ЗаписатьЦелое32 / WriteInt32()

Записать целое 32-битное положительное число в заданную позицию.

Параметры

  • position: Позиция, на которой требуется записать число.

  • value: Число, которое требуется записать. Если значение не помещается в 32 бита, будет вызван исключение.

  • byteOrder: Порядок байтов, который будет использован для кодировки числа при записи в буфер. Если не установлен, то будет использован порядок байтов, заданный для текущего экземпляра БуферДвоичныхДанных. Значение по умолчанию: Неопределено.

ЗаписатьЦелое64 / WriteInt64()

Записать целое 64-битное положительное число в заданную позицию.

Параметры

  • position: Позиция, на которой требуется записать число.

  • value: Число, которое требуется записать. Если значение не помещается в 64 бита, будет вызвано исключение.

  • byteOrder: Порядок байтов, который будет использован для кодировки числа при записи в буфер. Если не установлен, то используется порядок байтов, заданный для текущего экземпляра БуферДвоичныхДанных. Значение по умолчанию: Неопределено.

ЗаписатьПобитовоеИ / WriteBitwiseAnd()

Объединить заданное количество байтов, начиная с указанной позиции с байтами из заданного буфера с использованием побитового И. Если количество байтов не указано, то объединяются все байты до конца буфера.

Параметры

  • position: Начальная позиция в буфере.

  • bytes: Буфер, с которым выполняется объединение.

  • number: Количество байт, которые требуется объединить.

ЗаписатьПобитовоеИНе / WriteBitwiseAndNot()

Объединить заданное количество байтов, начиная с указанной позиции с байтами из заданного буфера с использованием побитового И НЕ. Если количество байтов не указано, то объединяются все байты до конца буфера.

Параметры

  • position: Начальная позиция в буфере.

  • bytes: Буфер, с которым выполняется объединение.

  • number: Количество байт, которые требуется объединить.

ЗаписатьПобитовоеИли / WriteBitwiseOr()

Объединить заданное количество байтов, начиная с указанной позиции с байтами из заданного буфера с использованием побитового ИЛИ. Если количество байтов не указано, то объединяются все байты до конца буфера.

Параметры

  • position: Начальная позиция в буфере.

  • bytes: Буфер, с которым выполняется объединение.

  • number: Количество байт, которые требуется объединить.

ЗаписатьПобитовоеИсключительноеИли / WriteBitwiseXor()

Объединить заданное количество байтов, начиная с указанной позиции с байтами из заданного буфера с использованием побитового ИСКЛЮЧИТЕЛЬНОГО ИЛИ (XOR). Если количество байтов не указано, то объединяются все байты до конца буфера.

Параметры

  • position: Начальная позиция в буфере.

  • bytes: Буфер, с которым выполняется объединение.

  • number: Количество байт, которые требуется объединить.

Перевернуть / Reverse()

Создает новый буфер, содержащий элементы текущего буфера в противоположном порядке.

Возвращаемое значение

Получить / Get()

Получает значение элемента на указанной позиции.

Параметры

  • position: Позиция элемента в буфере. Нумерация начинается с 0.

Возвращаемое значение

Числовым типом может быть представлено любое десятичное число. Над данными числового типа определены основные арифметические операции: сложение, вычитание, умножение и деление. Максимально допустимая разрядность числа 38 знаков.

ПолучитьСрез / GetSlice()

Создает новый буфер, использующий заданное количество байтов из исходного буфера, начиная с заданной позиции (нумерация с 0). Если количество не задано, то новый буфер является представлением элементов текущего буфера, начиная с заданного индекса и до конца.

НЕ РЕАЛИЗОВАН

Параметры

  • position: Позиция, начиная с которой будет создан новый буфер.

  • number: Количество байтов, которые требуется отобразить в срезе. Если на задано, то отображаются все байты от начала среза до конца исходного буфера. Значение по умолчанию: Неопределено.

Возвращаемое значение

Прочитать / Read()

Выполняет чтение байтов из буфера и помещает их в новый буфер.

Параметры

  • position: Позиция, начиная с которой требуется прочитать байты.

  • number: Количество байтов, которое требуется прочитать.

Возвращаемое значение

ПрочитатьЦелое16 / ReadInt16()

Выполняет чтение целого 16-битного положительного числа на заданной позиции.

Параметры

  • position: Позиция, на которой требуется прочитать число.

  • byteOrder: Порядок байтов, используемый при чтении числа. Если не задан, используется порядок, определенный для текущего экземпляра ЧтениеДанных. Значение по умолчанию: Неопределено.

Возвращаемое значение

ПрочитатьЦелое32 / ReadInt32()

Прочитать целое 32-битное положительное число на заданной позиции.

Параметры

  • position: Позиция, на которой требуется прочитать число.

  • byteOrder: Порядок байтов, используемый при чтении числа. Если не задан, используется порядок, определенный для текущего экземпляра ЧтениеДанных. Значение по умолчанию: Неопределено.

Возвращаемое значение

Числовым типом может быть представлено любое десятичное число. Над данными числового типа определены основные арифметические операции: сложение, вычитание, умножение и деление. Максимально допустимая разрядность числа 38 знаков.

ПрочитатьЦелое64 / ReadInt64()

Выполняет чтение целого 64-битного положительного числа на заданной позиции.

Параметры

  • position: Позиция, на которой требуется прочитать число.

  • byteOrder: Порядок байтов, используемый при чтении числа. Если не задан, используется порядок, определенный для текущего экземпляра ЧтениеДанных. Значение по умолчанию: Неопределено.

Возвращаемое значение

Числовым типом может быть представлено любое десятичное число. Над данными числового типа определены основные арифметические операции: сложение, вычитание, умножение и деление. Максимально допустимая разрядность числа 38 знаков.

Разделить / Split()

Разделить буфер на части по заданному разделителю или массиву разделителей.

Параметры

  • separator: Разделитель.

Возвращаемое значение

Массив из буферов двоичных данных

Скопировать / Copy()

Создает копию массива.

Возвращаемое значение

Соединить / Concat()

Создает новый буфер, содержащий элементы текущего буфера и, за ними, элементы заданного буфера.

Параметры

  • buffer: Буфер, который будет соединен с исходным.

Возвращаемое значение

Установить / Set()

Устанавливает значение элемента на заданной позиции (нумерация начинается с 0).

Параметры

  • position: Позиция, на которую требуется поместить новое значение.

  • value: Значение, которое требуется установить в заданную позицию буфера. Если значение больше 255 или меньше 0, будет выдана ошибка о неверном значении параметра.

УстановитьТолькоЧтение / SetReadOnly()

Переводит текущий буфер в режим "только для чтения". Попытка изменить состояние буфера приведет к вызову исключения.

Конструкторы

По умолчанию

Параметры

  • size: Размер буфера в байтах.

  • byteOrder: Порядок байтов. Значение по умолчанию: LittleEndian.