Pregunta

lo que tengo funciona, pero estoy buscando si hay una forma más rápida de copiar una cadena en un pByteArray

de sysutils

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

suponga que a y s están configurados correctamente

 a:   pByteArray;
 s:   string;

¿hay una manera rápida de hacer esto, es decir, algo así como copiar

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

delphi 7

¿Fue útil?

Solución

Cuidado con el movimiento. Si está utilizando Delphi 2009, puede fallar. En su lugar, use esto:

Mover (s [1], a ^, Longitud (s) * SizeOf (Char));

También puede usar la clase TEncoding en SysUtils.pas (solo Delphi 2009/2010 ++) para realizar la tarea.

Otros consejos

no importa, lo encontré

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

Puedes simplemente lanzarlo:

  a := @s[1];

Al revés es:

  s := PChar(a);

Creo que puede usar el procedimiento move como en este ejemplo

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top