Ver Mensaje Individual
  #1  
Antiguo 09-08-2010
jfh900 jfh900 is offline
Registrado
 
Registrado: ago 2010
Posts: 7
Reputación: 0
jfh900 Va por buen camino
Record ¿un nuevo misterio?

Hola a todos. Soy nuevo en le foro, pero no en la programación en Delphi.

Escribo este post por que me he encontrado una situación extraña utilizando los records. Me explico:

Estoy realizando un componente para capturar los datos de un GPS. Básicamente el GPS manda unas tramas vía RS232 con los distintos datos. Estas tramas se identifican por un comienzo y fin de trama y un código de trama. Bien yo capturo la trama e intento copiar los datos a una variable definida por un record para separar los distintos datos. Hasta aquí todo correcto.

Cuando empiezo a hacer pruebas los datos que obtengo no coinciden con los datos enviados, y empiezo a indagar, llegando al meollo de la cuestión.

Probar lo siguiente:

Ponemos un record del siguiente tipo:

Código Delphi [-]
TTrama=Record       
   Byte1: Byte;       
   Byte2: Byte;       
   Byte3: Byte;       
   Numer1: DWord;       
   Numer2: DWord;       
   Numer3: DWord;       
   Numer4: DWord;       
   Table: Array[1..13] of byte; 
End;

Bien si añadimos un botón para ver el tamaño del recor:

Código Delphi [-]
ShowMessage(IntToStr(SizeOf(TTrama)));

Obtenemos: 36.

Si hacemos las cuentas tenemos:

3+4x4+13=3+16+13=32

Como podéis ver no coincide el tamaño definido o esperado con el que me devuelve el compilador.

¿Alguien tiene la solución?.

Un saludo y perdón por el peñazo.

Última edición por jfh900 fecha: 09-08-2010 a las 17:08:36. Razón: Marcar opciones
Responder Con Cita