Question

Ce que j'ai fonctionne, mais je cherche s'il existe un moyen plus rapide de copier une chaîne dans un pByteArray

de sysutils

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

supposons que a et que s soient configurés correctement

 a:   pByteArray;
 s:   string;

existe-t-il un moyen rapide de le faire, c'est-à-dire quelque chose comme une copie

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

delphi 7

Était-ce utile?

La solution

Faites attention en utilisant le déplacement. Si vous utilisez Delphi 2009, cela peut échouer. Utilisez plutôt ceci:

Déplacer (s [1], a ^, Longueur (s) * Taille de (Car));

Vous pouvez également utiliser la classe TEncoding dans SysUtils.pas (Delphi 2009/2010 ++ uniquement) pour effectuer la tâche.

Autres conseils

tant pis, trouvé

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

Vous pouvez simplement le lancer:

  a := @s[1];

L’inverse est:

  s := PChar(a);

Je pense que vous pouvez utiliser la procédure move comme dans cette exemple

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top