64 bit hexa little indian en date et heure

[Résolu]
Signaler
Messages postés
240
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
22 mars 2009
-
Messages postés
240
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
22 mars 2009
-
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

Messages postés
111
Date d'inscription
mercredi 2 février 2005
Statut
Membre
Dernière intervention
5 août 2011
1
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
Messages postés
240
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
22 mars 2009

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 ^^