Delphi,将字符串复制到字节数组
我所做的很有效,但我正在寻找是否有一种更快的方法将字符串复制到pByteArray中 来自sysutilsDelphi,将字符串复制到字节数组,delphi,string,bytearray,delphi-7,Delphi,String,Bytearray,Delphi 7,我所做的很有效,但我正在寻找是否有一种更快的方法将字符串复制到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没关系,找到了
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(s[1], a^, Length(s));
我想你可以使用
move
过程,就像这样你可以简单地施放它:
a := @s[1];
另一种方法是:
s := PChar(a);
小心使用移动。如果您使用的是Delphi 2009,它可能会失败。相反,请使用以下命令: 移动(s[1],a^,长度*SizeOf(Char))
您也可以在SysUtils.pas中使用类TEncoding(仅限Delphi 2009/2010++)来执行该任务。请记住检查不复制任何内容的长度,它会使
a
指向与其类型不同的内容。True(我假设其目的是作为bytearray或vice vera访问a字符串)如果长度为零,则不执行for循环。要完全等效,您需要添加一个if长度检查。补充。