Utilisation du type FILETIME

Le
Jean-Luc Andréï
Salut,
comment peut afficher une donnée du type FILETIME avec printf ?
++
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Régis Troadec
Le #605137
"Jean-Luc Andréï" news:4072b7d8$0$20144$
Salut,
Salut,


comment peut afficher une donnée du type FILETIME avec printf ?


Je connais les macros __TIME__ et __FILE__, je ne connais pas FILETIME,
c'est quoi? Il n'a y en tout cas pas de tel type en C.

De souvenir, FILETIME, je crois que c'est une structure specifique
Microsoft, mais je ne sais plus quoi. Donc pour afficher avec printf, ce
sera champ par champ (tu peux les mettre les uns apres les autres dans le
même printf si tu veux), avec les specificateurs correspondant aux types des
champs.

Regis

Régis Troadec
Le #605136
De souvenir, FILETIME, je crois que c'est une structure specifique
Microsoft, mais je ne sais plus quoi. Donc pour afficher avec printf, ce
sera champ par champ (tu peux les mettre les uns apres les autres dans le
même printf si tu veux), avec les specificateurs


... de format ...

correspondant aux types des
champs.



Jean-Luc Andréï
Le #605135
"Régis Troadec" news:c4uehu$tpc$

De souvenir, FILETIME, je crois que c'est une structure specifique
Microsoft, mais je ne sais plus quoi. Donc pour afficher avec printf, ce
sera champ par champ (tu peux les mettre les uns apres les autres dans
le


même printf si tu veux), avec les specificateurs


... de format ...

correspondant aux types des
champs.







C'est effectivement un format spécifique a windaube, mais je n'ai pas le
choix, je faits un petit prog à l'usine, qui regarde des dates lus sur les
attributs de certains fichiers

fournis par une fonction M$$

toutes les references au temps sont de type FILETIME et je ne peut meme pas
l'utilisée tel quel


Antoine Leca
Le #605134
En 4072b7d8$0$20144$, Jean-Luc Andréï va escriure:
comment peut afficher une donnée du type FILETIME avec printf ?


"%I64d"


Antoine

Alexandre BACQUART
Le #605008
Jean-Luc Andréï wrote:
Salut,
comment peut afficher une donnée du type FILETIME avec printf ?
++


C'est un peu fastidieux... voici :

typedef struct _FILETIME
{
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME;

typedef struct _SYSTEMTIME
{
WORD wYear; // > 1601 (naissance de Bill Gates je suppose)
WORD wMonth; // mois (janvier == 1, février == 2, ...)
WORD wDayOfWeek; // jour de la semaine (dimanche == 0, lundi == 1, ...)
WORD wDay; // jour du mois
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME;

Pour extraire les données temporelles d'un FILETIME en language
"humain", il faut le convertir en SYSTEMTIME, genre :

FILETIME ft;
SYSTEMTIME st;

FileTimeToSystemTime(&ft, &st);

printf( "Le %2d/%2d/%d à %2d:%2d:%2d.",
st.wDay, st.wMonth, st.wYear,
st.wHour, st.wMinute, st.wSecond );

Sinon, http://msdn.microsoft.com, y'a tout sur le monde merveilleux de
minidoux.

--
Tek
int main(void) {printf("Free The World !");} /* copyleft */

Emmanuel Delahaye
Le #605005
In 'fr.comp.lang.c', "Jean-Luc Andréï"
comment peut afficher une donnée du type FILETIME avec printf ?


Type inconnu. Il faut chercher sa définition.

Si c'est un entier, le type "%lu" avec (unsigned long) permet de parer à
toutes les éventualités (en C90). Pour C99, "%llu avec" (unsigned long long)

Si il est signé, remplacer 'u' par 'd' et retirer 'unsigned'

--
-ed- [remove YOURBRA before answering me]
The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html
C-reference: http://www.dinkumware.com/manuals/reader.aspx?lib=cpp
FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/

Emmanuel Delahaye
Le #605004
In 'fr.comp.lang.c', "Jean-Luc Andréï"
C'est effectivement un format spécifique a windaube, mais je n'ai pas le


Ca s'écrit 'Windows'. Si ce système ne te convient pas, il existe des
alternatives.

Non mais...

--
-ed- [remove YOURBRA before answering me]
The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html
C-reference: http://www.dinkumware.com/manuals/reader.aspx?lib=cpp
FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/

DINH Viêt Hoà
Le #605003

FILETIME ft;
SYSTEMTIME st;

FileTimeToSystemTime(&ft, &st);

printf( "Le %2d/%2d/%d à %2d:%2d:%2d.",
st.wDay, st.wMonth, st.wYear,
st.wHour, st.wMinute, st.wSecond );

Sinon, http://msdn.microsoft.com, y'a tout sur le monde merveilleux de
minidoux.


effectivement, n'étant pas développeurs microchiotte windaube,
j'ai trouvé en 2 secondes.

Il y a même des API typées POSIX
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/html/_crt__stat.2c_._wstat.2c_._stati64.2c_._wstati64.asp

#include #include
int _stat( const char *path, struct _stat *buffer );

__int64 _stati64( const char *path, struct _stat *buffer );

int _wstat( const wchar_t *path, struct _stat *buffer );

__int64 _wstati64( const wchar_t *path, struct _stat *buffer );

mais je ne sais pas à partir de quelle version de Windaube c'est
valable, peut-être Wind4ub3 extr4 plus de bug ? ou windaube 2 kilos de
bugs ? Peut-être des plus informés sur le sujet sauront.

--
DINH V. Hoa,

"on dirait un gamin de 2 ans" -- coin-coin

Yves ROMAN
Le #604999

--
Tek
int main(void) {printf("Free The World !");} /* copyleft */
Il reste encore une erreur : ca m'étonne que personne ne l'ait encore

signalée...

DINH Viêt Hoà
Le #604841


--
Tek
int main(void) {printf("Free The World !");} /* copyleft */
Il reste encore une erreur : ca m'étonne que personne ne l'ait encore

signalée...


le printf() qui n'est pas optimal ?

puts ?

int main(void) {puts("Free The World !");} /* copyleft */

ou tu pensais à autre chose ?

--
DINH V. Hoa,

"dans la famille, on est tous intelligents" -- sunZ


Publicité
Poster une réponse
Anonyme