德尔福,复制字符串到字节数组
我有什么作品,但即时寻找,如果有一个字符串是sysutils复制到pByteArray德尔福,复制字符串到字节数组
更快的方法
PByteArray = ^TByteArray;
TByteArray = array[0..32767] of Byte;
承担一个和小号是设置正确
a: pByteArray;
s: string;
是有一个快速的方法来做到这一点,即像副本
for i := 1 TO Length(s) - 1 do
a^[i] := Ord(s[i]);
德尔福7
小心使用移动。如果您使用的是Delphi 2009,则可能会失败。相反,使用这个:
Move(s [1],a ^,Length(s)* SizeOf(Char));
您也可以在SysUtils.pas(仅限Delphi 2009/2010 ++)中使用类TEncoding来执行任务。
没关系,发现它
Move(s[1], a^, Length(s));
请记住检查长度 2009-12-01 08:27:11
你可以简单地将它转换:
a := @s[1];
相反的方法是:
s := PChar(a);
这不会复制任何东西,它会使'a'指向某种与其类型不同的东西。 – 2009-12-01 14:47:57
True(我假定其目的是作为字节阵列或副字符访问字符串) – Remko 2009-12-01 21:07:03
如果length(s)为零,则for循环不执行。为了完全等价,你需要添加一个检查长度(s)。添加。 – 2009-12-13 14:35:58