Вопрос

что у меня работает, но я смотрю, есть ли более быстрый способ скопировать строку в 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 , как в этом пример

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top