БуферДвоичныхДанных / 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.