Delphi, Copiar cadena a matriz de bytes
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
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