Domanda

quello che ho funziona, ma sto cercando se c'è un modo più veloce per copiare una stringa in un pByteArray

da sysutils

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

presuppone che a e s siano impostati correttamente

 a:   pByteArray;
 s:   string;

c'è un modo rapido per farlo, cioè qualcosa come copia

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

delphi 7

È stato utile?

Soluzione

Attenzione usando lo spostamento. Se si utilizza Delphi 2009, potrebbe non riuscire. Invece, usa questo:

Sposta (s [1], a ^, Length (s) * SizeOf (Char));

È inoltre possibile utilizzare la classe TEncoding in SysUtils.pas (solo Delphi 2009/2010 ++) per eseguire l'attività.

Altri suggerimenti

non importa, l'ho trovato

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

Puoi semplicemente lanciarlo:

  a := @s[1];

Il contrario è:

  s := PChar(a);

Penso che puoi usare la procedura move proprio come in questa esempio

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top