Функция преобразования массива байт (array of bytes) в строку(string) на Delphi 6
В целом для этих целей в Delphi 6 изначально можно использовать move. В move первым параметром передаётся источник информации для копирования, вторым параметром куда копировать информацию, третьим параметром - число типа integer содержащее размер копируемой информации. Например если у Вас есть переменная arByte: array of byte и переменная arChar: array of char; и предположим что размер arByte задан так: setLength(arBite,10) и Вам нужно эти 10 байт скопировать в arChar, можно сделать это выполнив: move(arByte,arChar,10); Я лично сталкивался с ситуацией когда нужно было получить часть массива с байтами, в этой части хранилась строковая информация и мне нужно было вывести её через showMessage. Заметил что в конце выводимого сообщения в специальном окне, которое создаёт вызов showMessage при использовании вышеуказанного подхода, в конце строковой информации иногда появлялись 1 или несколько символов. Могли появляться они, когда я передавал arChar так: showMessage(string(arChar)); казалось бы явный вызов преобразования string должен был избавить от этой ситуации, но в Delphi 6 оказалось что это не так. Заметил что если пересоздать строку вызовом Copy символы не имеющие отношения к данным не появлялись, поэтому для преобразования массива байт(array of byte) в строку(string) я написал функцию код которой находится в листинге ниже.
В функцию необходимо передавать динамический массив типа array of byte. Пример использования приведён в листинге ниже. Для того чтобы посмотреть как работает программа из листинга ниже, создайте на форме нового проекта кнопку Button1 а затем замените весь программный код на код из листинга. После вызова программы и нажатия кнопки Button1 на форме должно появиться окно с текстом ABCD.