seriación

09/09/2003 - 09:48 por Luis | Informe spam
Hola, estoy intentando guardar una clase en un archivo
mediante seriación. Se guarda bien, pero a la hora de
recojer la información me pone algunos campos a cero y
otros me los desordena. Mi función serialize es la
siguiente:

if(ar.IsStoring())
ar << (DWORD)m_FInicial << (DWORD)m_FFinal
<< (DWORD)m_FMuestreo << (DWORD)m_NMuestrasTmp <<
(DWORD)m_NPuntosFrec << m_Ventana
<< (BYTE)m_Solapamiento << (DWORD)m_NMuestrasSolap <<
(DWORD)m_NRealizaciones;
else
{
WORD FInicial, FFinal, FMuestreo,
NMuestrasTmp, NPuntosFrec, NMuestrasSolap, NRealizaciones;
BYTE Solapamiento;

ar >> FInicial >> FFinal >> FMuestreo >>
NMuestrasTmp >> NPuntosFrec >> m_Ventana


Solapamiento >> NMuestrasSolap
NRealizaciones;





m_FInicial = (UINT)FInicial;
m_FFinal = (UINT)FFinal;
m_FMuestreo = (UINT)FMuestreo;
m_NMuestrasTmp = (UINT)NMuestrasTmp;
m_NPuntosFrec = (UINT)NPuntosFrec;
m_Solapamiento = (BOOL)Solapamiento;
m_NMuestrasSolap = (UINT)NMuestrasSolap;
m_NRealizaciones = (UINT)NRealizaciones;

Gracias
 

Leer las respuestas

#1 Ignacio Nicolás Rodríguez
16/09/2003 - 17:04 | Informe spam
Es que está clarísimo, cuando guardas salvas un DWORD y cuando lees lo haces
con un WORD.

DWORD es unsigned long,
WORD es unsigned short

Deberían ser los mismos tipos de dato de ida como de vuelta.

if(ar.IsStoring())
ar << (DWORD)m_FInicial << (DWORD)m_FFinal
<< (DWORD)m_FMuestreo << (DWORD)m_NMuestrasTmp <<
(DWORD)m_NPuntosFrec << m_Ventana
<< (BYTE)m_Solapamiento << (DWORD)m_NMuestrasSolap <<
(DWORD)m_NRealizaciones;
else
{
// nótese "D-WORD"
DWORD FInicial, FFinal, FMuestreo,
NMuestrasTmp, NPuntosFrec, NMuestrasSolap, NRealizaciones;
BYTE Solapamiento;

ar >> FInicial >> FFinal >> FMuestreo >>
NMuestrasTmp >> NPuntosFrec >> m_Ventana
Solapamiento >> NMuestrasSolap
NRealizaciones;





m_FInicial = (UINT)FInicial;
m_FFinal = (UINT)FFinal;
m_FMuestreo = (UINT)FMuestreo;
m_NMuestrasTmp = (UINT)NMuestrasTmp;
m_NPuntosFrec = (UINT)NPuntosFrec;
m_Solapamiento = (BOOL)Solapamiento;
m_NMuestrasSolap = (UINT)NMuestrasSolap;
m_NRealizaciones = (UINT)NRealizaciones;


Saludos. Ignacio Nicolás Rodríguez, MCSD.Net/MCT.//

"Luis" escribió en el mensaje
news:51b401c376a6$b27ed0d0$
Hola, estoy intentando guardar una clase en un archivo
mediante seriación. Se guarda bien, pero a la hora de
recojer la información me pone algunos campos a cero y
otros me los desordena. Mi función serialize es la
siguiente:

if(ar.IsStoring())
ar << (DWORD)m_FInicial << (DWORD)m_FFinal
<< (DWORD)m_FMuestreo << (DWORD)m_NMuestrasTmp <<
(DWORD)m_NPuntosFrec << m_Ventana
<< (BYTE)m_Solapamiento << (DWORD)m_NMuestrasSolap <<
(DWORD)m_NRealizaciones;
else
{
WORD FInicial, FFinal, FMuestreo,
NMuestrasTmp, NPuntosFrec, NMuestrasSolap, NRealizaciones;
BYTE Solapamiento;

ar >> FInicial >> FFinal >> FMuestreo >>
NMuestrasTmp >> NPuntosFrec >> m_Ventana
Solapamiento >> NMuestrasSolap
NRealizaciones;





m_FInicial = (UINT)FInicial;
m_FFinal = (UINT)FFinal;
m_FMuestreo = (UINT)FMuestreo;
m_NMuestrasTmp = (UINT)NMuestrasTmp;
m_NPuntosFrec = (UINT)NPuntosFrec;
m_Solapamiento = (BOOL)Solapamiento;
m_NMuestrasSolap = (UINT)NMuestrasSolap;
m_NRealizaciones = (UINT)NRealizaciones;

Gracias

Preguntas similares