Delphi,将字符串复制到Byte数组

Chr*_*ase 4 delphi string bytearray delphi-7

我有什么工作,但我正在寻找是否有更快的方法将字符串复制到pByteArray

来自sysutils

  PByteArray = ^TByteArray;
  TByteArray = array[0..32767] of Byte;
Run Code Online (Sandbox Code Playgroud)

假设as设置正确

 a:   pByteArray;
 s:   string;
Run Code Online (Sandbox Code Playgroud)

有没有一种快速的方法来做到这一点,即复制等

  for i := 1 TO Length(s) - 1 do
   a^[i] := Ord(s[i]);
Run Code Online (Sandbox Code Playgroud)

德尔福7

Cha*_*ang 8

小心使用Move.如果您使用的是Delphi 2009,则可能会失败.相反,使用这个:

移动(s [1],a ^,Length(s)*SizeOf(Char));

您也可以在SysUtils.pas(仅限Delphi 2009/2010 ++)中使用TEncoding类来执行任务.

  • 如果length(s)为零,则for循环不执行.要完全等效,您需要添加一个长度检查.添加. (3认同)