Ver Mensaje Individual
  #2  
Antiguo 30-05-2007
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Reputación: 27
delphi.com.ar Va por buen camino
Una posible respuesta a tu prengunta, puede ser:
Código Delphi [-]
type
  TMyRecord = record
    Data: array[0..255] of byte;
  end;
...
var
  R: TMyRecord;
  S, Q: string;
begin
  { String a Array }
  S := 'Hola Mundo!';
  ZeroMemory(@R.Data[0], High(R.Data));
  StrPLCopy(@R.Data[0], S, High(R.Data));

  { Array a String }
  SetLength(Q, High(R.Data));
  Move(R.Data[0], Q[1], High(R.Data));

  ShowMessage(Q);

Ahora... yo no se para que utilizas el array de Bytes, pero viendo que lo quieres convertir a un string, supongo que estas almacenando cadenas de caracteres, o sea array de Chars no de Bytes. En ese caso el compilador te da una mano:

Código Delphi [-]
  TMyRecord = record
     CharData: array[0..50] of char;
  end;
...
var
  R: TMyRecord;
begin
  R.CharData := 'Hola Mundo!';
  ShowMessage(R.CharData);
Pero... si verdaderamente necesitas que sea un array de bytes, para facilidad yo definiría el registro de la siguiente manera, teniendo apuntado ambos tipos de array al mismo sector de memoria:

Código Delphi [-]
  TMyRecord = record
    case Integer of
    0: (
       ByteData: array[0..50] of byte;
       );
    1: (
       CharData: array[0..50] of char;
      );
  end;

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita