Delphi, Copier une chaîne dans un tableau d'octets
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
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