4

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

来自 sysutils

  PByteArray = ^TByteArray;
  TByteArray = array[0..32767] of Byte;

假设as设置正确

 a:   pByteArray;
 s:   string;

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

  for i := 1 TO Length(s) - 1 do
   a^[i] := Ord(s[i]);

德尔福7

4

4 回答 4

8

小心使用移动。如果您使用的是 Delphi 2009,它可能会失败。相反,使用这个:

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

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

于 2009-12-01T08:27:48.250 回答
3

您可以简单地转换它:

  a := @s[1];

另一种方法是:

  s := PChar(a);
于 2009-12-01T07:26:28.530 回答
2

没关系,找到了

 Move(s[1], a^, Length(s));
于 2009-12-01T06:34:45.357 回答
1

我认为您可以move像在此示例中一样使用程序

于 2009-12-01T06:35:34.203 回答