Delphi, скопировать строку в байтовый массив
Вопрос
что у меня работает, но я смотрю, есть ли более быстрый способ скопировать строку в pByteArray
от sysutils
PByteArray = ^TByteArray;
TByteArray = array[0..32767] of Byte;
предположим, что a и s настроены правильно
a: pByteArray;
s: string;
есть ли быстрый способ сделать это, то есть что-то вроде копирования
for i := 1 TO Length(s) - 1 do
a^[i] := Ord(s[i]);
delphi 7
Решение
Остерегайтесь, используя Move. Если вы используете Delphi 2009, он может потерпеть неудачу. Вместо этого используйте это:
Переместить (с [1], a ^, длина (с) * SizeOf (Char));
Вы также можете использовать класс TEncoding в SysUtils.pas (только Delphi 2009/2010 ++) для выполнения задачи.
Другие советы
не бери в голову, нашел его
Move(s[1], a^, Length(s));
Вы можете просто разыграть его:
a := @s[1];
И наоборот:
s := PChar(a);
Я думаю, что вы можете использовать процедуру move
, как в этом пример р>
Не связан с StackOverflow