БуферДвоичныхДанных / BinaryDataBuffer
Коллекция байтов фиксированного размера с возможностью произвольного доступа и изменения по месту. Размер буфера формально не ограничен, но поскольку все данные буфера полностью находятся в оперативной памяти, при попытке создать буфер слишком большого размера доступной памяти может оказаться недостаточно, в результате чего будет вызвано исключение. Поэтому при работе с буферами двоичных данных необходимо соотносить их размер с доступным объемом оперативной памяти. При создании буфера можно указать порядок байтов, который будет использован для операций с целыми числами. При этом если буфер не создан явно, а получен с помощью вызова метода другого объекта, то порядок байтов в полученном буфере будет унаследован от порядка байтов, заданного для того объекта, метод которого вызывается. Например, если буфер получен с помощью вызова метода ПрочитатьВБуферДвоичныхДанных, то порядок байтов в полученном буфере будет равен значению свойства ПорядокБайтов. Возможен также более сложный случай наследования порядка байтов. Если буфер получен с помощью вызова метода ПолучитьБуферДвоичныхДанных, то порядок байтов у полученного буфера будет выбираться из объекта ЧтениеДанных, из которого был получен объект РезультатЧтенияДанных. Порядок байтов, заданный для объекта ЧтениеДанных, будет использован во всех объектах, полученных на его основании.
Свойства
ПорядокБайтов / ByteOrder
- Чтение: Да
- Запись: Да
Тип значения: ПорядокБайтов (ByteOrder)
Текущий порядок байтов. Влияет на операции чтения и записи целых чисел в буфер.
Размер / Size
- Чтение: Да
- Запись: Нет
Тип значения: Число (Number)
Размер буфера в байтах.
ТолькоЧтение / ReadOnly
- Чтение: Да
- Запись: Нет
Тип значения: Булево (Boolean)
Значение Истина указывает, что данный буфер предназначен только для чтения.
Методы
Записать / Write
Заменить значения, начиная с заданной позиции, значениями из заданного буфера.
Параметры
- position: Позиция, начиная с которой требуется записать содержимое буфера.
- bytes: Байты, которыми нужно заполнить часть буфера.
- number: Количество байт, которые требуется заменить. Необязательный. Значение по умолчанию: 0
ЗаписатьЦелое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: Количество байт, которые требуется объединить. Необязательный. Значение по умолчанию: 0
ЗаписатьПобитовоеИНе / WriteBitwiseAndNot
Объединить заданное количество байтов, начиная с указанной позиции с байтами из заданного буфера с использованием побитового И НЕ. Если количество байтов не указано, то объединяются все байты до конца буфера.
Параметры
- position: Начальная позиция в буфере.
- bytes: Буфер, с которым выполняется объединение.
- number: Количество байт, которые требуется объединить. Необязательный. Значение по умолчанию: 0
ЗаписатьПобитовоеИли / WriteBitwiseOr
Объединить заданное количество байтов, начиная с указанной позиции с байтами из заданного буфера с использованием побитового ИЛИ. Если количество байтов не указано, то объединяются все байты до конца буфера.
Параметры
- position: Начальная позиция в буфере.
- bytes: Буфер, с которым выполняется объединение.
- number: Количество байт, которые требуется объединить. Необязательный. Значение по умолчанию: 0
ЗаписатьПобитовоеИсключительноеИли / WriteBitwiseXor
Объединить заданное количество байтов, начиная с указанной позиции с байтами из заданного буфера с использованием побитового ИСКЛЮЧИТЕЛЬНОГО ИЛИ (XOR). Если количество байтов не указано, то объединяются все байты до конца буфера.
Параметры
- position: Начальная позиция в буфере.
- bytes: Буфер, с которым выполняется объединение.
- number: Количество байт, которые требуется объединить. Необязательный. Значение по умолчанию: 0
Перевернуть / 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. Необязательный.