Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-07-2005
leandro_tami leandro_tami is offline
Registrado
 
Registrado: mar 2004
Posts: 4
Poder: 0
leandro_tami Va por buen camino
Extrañísimo problema con un registro

Hola. Tengo un problema que está acabando con mi paciencia, y realmente no comprendo porqué está ocurriendo.
Resulta que tengo un tipo de dato como éste:
Código:
  type
     TPACFileHeader = record
   	sig: array [0..2] of char;
   	ver: word;
   	width: byte;
   	height: byte;
   	spc: byte;
   	gpc: byte;
     end;
Haciendo las cuentas, cada registro de este tipo debe ocupar 9 bytes. Pero la función sizeof() me dice que tiene 10. No solo eso. Cuando escribo en un archivo este registro (usando un TFileStream o bien con una variable de tipo archivo), ¡me intercala un byte = 0 entre sig y ver!. O bien esto es un bug del compilador o tengo la solución frente a mis ojos y no la veo!

edit: estoy usando Delphi 7
Responder Con Cita
  #2  
Antiguo 16-07-2005
jlibaval jlibaval is offline
Registrado
 
Registrado: may 2005
Ubicación: Los Mochis
Posts: 2
Poder: 0
jlibaval Va por buen camino
Thumbs up Declaracio de Record


type


TPACFileHeader = record
sig: array [0..2] of char;
ver: word;
width: byte;
height: byte;
spc: byte;
gpc: byte;
end;


By default, the values in a structured type are aligned on word or double-word boundaries for faster access. When you declare a structured type, you can include the reserved word packed to implement compressed data storage



el compilador lo pone en palabras dobles por eso

lo acomoda a 10 bytes





Utilizalo de la siguiente manera


TPACFileHeader = Packed record
sig: array [0..2] of char;
ver: word;
width: byte;
height: byte;
spc: byte;
gpc: byte;
end;
Responder Con Cita
  #3  
Antiguo 16-07-2005
leandro_tami leandro_tami is offline
Registrado
 
Registrado: mar 2004
Posts: 4
Poder: 0
leandro_tami Va por buen camino
SSSSSssssssiiii!!!!!
Muchísimas gracias, el motivo era ése.
Aún tengo más horas con Turbo Pascal que con Delphi, supongo.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 21:54:38.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi