質問

私が持っているものですが、文字列を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を使用している場合、失敗する場合があります。代わりに、これを使用してください:

Move(s [1]、a ^、Length(s)* SizeOf(Char));

SysUtils.pasのクラスTEncoding(Delphi 2009/2010 ++のみ)を使用してタスクを実行することもできます。

他のヒント

気にしないで、見つけた

 Move(s[1], a^, Length(s));

単純にキャストできます:

  a := @s[1];

他の方法は:

  s := PChar(a);

この

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top