64 bit hexa little indian en date et heure

Résolu
cs_omnia Messages postés 240 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 22 mars 2009 - 8 déc. 2006 à 14:10
cs_omnia Messages postés 240 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 22 mars 2009 - 8 déc. 2006 à 16:48
Bonjour, voila je vous esplique je récupère une chaine du genre :

103D6627AB1AC701

en réel sa doit me donner : ven., 08 décembre 2006 10:28:00

je sais que le format des données de base est 64 bit hexa little indian en date et heure

mais après de multiples essais je bloque j'ai testé en fesant comme ca:

char val[16]="103D6627AB1AC701";
  FILETIME FileTime, LocalFileTime;
  SYSTEMTIME SysTime;
__int64 tmp;

tmp= Int32x32To64(HexaToDec(val,16),10000000) + 116444736000000000;
                FileTime.dwLowDateTime = (DWORD) tmp;
                FileTime.dwHighDateTime = (DWORD)(tmp>> 32);
           
                FileTimeToLocalFileTime(&FileTime, &LocalFileTime);
                FileTimeToSystemTime(&LocalFileTime, &SysTime);               
                           
                printf("%02d/%02d/%02d-%02d:%02d:%02d\n",SysTime.wMonth,SysTime.wDay,SysTime.wYear,SysTime.wHour,SysTime.wMinute,SysTime.wSecond);         
          
si quelqu'un connais la solution :(

2 réponses

JejeLand Messages postés 111 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 5 août 2011 1
8 déc. 2006 à 16:27
Salut,

Le problème doit venir de la convertion de la date d'une chaine de caractère en Hexa.


J'ai fait le test suivant :


unsigned long tmp1 = 0x01C71AAB;   // Reprise des 8 derniers  caractères de la chaine
unsigned long tmp2 = 0x27663D10;     // Reprise des 8 premiers caractères de la chaine

FILETIME FileTime, LocalFileTime;
SYSTEMTIME SysTime;

            FileTime.dwLowDateTime = (DWORD) tmp2;
            FileTime.dwHighDateTime = (DWORD)tmp1;
            
            FileTimeToLocalFileTime(&FileTime, &LocalFileTime);
            FileTimeToSystemTime(&LocalFileTime, &SysTime);     

La structure SysTime contient la date du ven., 08 décembre 2006 10:28:00
3
cs_omnia Messages postés 240 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 22 mars 2009
8 déc. 2006 à 16:48
Mais oui complètement je suis trop .... arr

bon pour info cette partie de programme fait partie d'un programme très simple qui récupère dans la base de registre les clés codés en rod 13 (césar) d'historique, et qui affiche en clair avec la date de dernière modification (merci a toi JejeLand)  le nombre d'exécution du lien et le numéro de série de connexion de la dernière session, je mettrait en ligne la source dés que finalisé.

Merci ^^
0
Rejoignez-nous