.. currentmodule:: TatInternalObject .. _blobs: Blobs ---------------------------------------------------------------------- .. pas:function:: BlobToBase64(Blob: blob): String Кодирует бинарные данные в Base64 :param Variant Blob: Бинарные данные :rtype: String .. warning:: |not_supported| .. pas:function:: Base64ToBlob(Base64String: String): Variant Декодирует бинарные данные из Base64 :param String Base64String: Строка Bаse64 кодировки :rtype: blob .. warning:: |not_supported| .. pas:function:: BlobToHex(Data: blob) Кодирует бинарные данные в HEX-строку :param blob Data: Бинарные данные. :rtype: String .. warning:: |not_supported| .. pas:function:: HexToBlob(Hex: String) Декодирует бинарные данные из Hex-строки :param String Hex: HEX-строка :rtype: blob .. warning:: |not_supported| .. pas:function:: BlobToString(Data: blob; CodePage: Integer) Привести буфер бинарных данных к строке. .. warning:: Метод предназначен для приведения буфера заведомо содержащего текстовые данные :param blob Data: Текстовые данные в бинарном виде. :param Integer CodePage: :term:`Кодировка ` текстовых данных. :rtype: String .. warning:: |not_supported| .. pas:function:: StringToBlob(Text: String; CodePage: Integer) Привести строку к бинарному представлению. .. attention:: Возвращаемый результат не содержит информацию о кодировке строки .. warning:: При передаче строковых значений между разными переменными в Pascal-скрипте не гарантируется сохранность кодировки. Это следует учитывать при работе со StringToBlob и вызывать его сразу после получения значения в нужной кодировке, либо указывать требуемую кодировку явно. Наиболее частый, но не единственный, способ потери кодировки - использование массивов. Строковые значения элементов массивов могут быть представлены только юникодом. Из-за этого при присвоении элементам не юникодных строк они перекодируются в UTF16. Эту особенность нельзя обойти и её следует просто учитывать. :param String Text: Текст :param Integer CodePage: :term:`Кодировка ` которой должен соответствовать возвращаемый результат. Может отличаться от кодировки строки переданной в параметре AString. Если параметр не указан будет использована кодировка в которой передана строка. :rtype: blob .. warning:: |not_supported| .. pas:function:: BlobIntToStr(VeryBigInteger: blob) Привести сколь угодно большое целое беззнаковое число к строке, в десятиричном представлении. :param blob VeryBigInteger: Бинарное представление числа (BigEndian). :returns: Десятиричная запись числа. :rtype: String .. warning:: |not_supported| .. pas:method:: BlobRevers(Data: blob) "Перевернуть" блоб. Возвращает блоб тех же данных, но с обратным порядком индексации: ``[Data[N], Data[N-1], ..., Data[0]]``. Может быть полезно когда необходимо изменить порядковую нотацию ``BigEndian <-> LittleEndian``. :param blob Data: Бинарные данные. :rtype: blob .. warning:: |not_supported| .. pas:method:: BlobCopy(Blob: blob; StartByte, Count: Integer): blob Копировать часть блоба :param blob Blob: Блоб-источник :param Integer StartByte: Порядковый номер байта в источнике, с которого начнётся копирование :param Integer Count: Количество байт которое будет скопировано Примечание: если указано количество больше доступного - будет скопировано всё что доступно (до конца блоба-источника) .. warning:: |not_supported| .. pas:method:: BlobConcat(Blob1, Blob2[,... BlobN]): blob Объединить блобы в один общий Перечисленные в параметрах блобы будут скопированы в итоговый в порядке как они перечислены в параметрах. Всего можно перечислить до 255 блобов. .. warning:: |not_supported|