Ver Mensaje Individual
  #34  
Antiguo 12-06-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 31
Lepe Va por buen camino
Encontrarse en esta situación es muy típico de nosotros (los programadores) socger. El consejo de Casimiro es muy bueno.

Casimiro, el valor que se obtiene en algunos casos era negativo, y en otros, se obtiene una fecha muy cerca de 1900. Con el comentario de sítrico, todo queda mucho más claro: el integer llega hasta un valor de 0..2^16-1 cuando encuentra un valor más grande en el archivo, el tipo integer devuelve un número negativo (interpretando erróneamente el valor guardado. Por ello debe usarse el LongWord.

Por otra parte, creo haber leído en el pdf, que la fecha en la que se basa es 1970, es decir, ese número guardado, son los días transcurridos desde 1/01/1970 (lo digo de memoria, favor de mirar el pdf para comprobarlo) y como sabemos, el calendario del ordenador se basa en 1900, por tanto, a ese número obtenido habría que sumarle 70 años para obtener el valor correcto. Yo, aunque lo intenté, tampoco obtuve los resultados esperados, muy probablemente porque usaba un Integer en lugar del LongWord o Cardinal.

Son muchos detalles los que hay que tener en cuenta

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita