Pergunta

o que eu tenho obras, mas estou procurando se existe uma maneira mais rápida para copiar uma string em um pByteArray

de sysutils

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

assumem a e s são configurados corretamente

 a:   pByteArray;
 s:   string;

Existe uma maneira rápida de fazer isso, ou seja, algo como cópia

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

Delphi 7

Foi útil?

Solução

Cuidado com o Move. Se você estiver usando o Delphi 2009, pode falhar. Em vez disso, use o seguinte:

Mover (s [1], um ^, comprimento (s) * sizeof (Char));

Você também pode usar TEncoding classe em SysUtils.pas (Delphi 2009/2010 ++ somente) para executar a tarefa.

Outras dicas

Nunca mente, verificou-

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

Você pode simplesmente lançá-lo:

  a := @s[1];

O outro caminho é:

  s := PChar(a);

Eu acho que você pode usar procedimento move como neste exemplo

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top