Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Utilisation du type FILETIME

30 réponses
Avatar
Jean-Luc Andréï
Salut,
comment peut afficher une donnée du type FILETIME avec printf ?
++

10 réponses

1 2 3
Avatar
Régis Troadec
"Jean-Luc Andréï" a écrit dans le message de
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

Avatar
Régis Troadec
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.



Avatar
Jean-Luc Andréï
"Régis Troadec" a écrit dans le message de
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


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


"%I64d"


Antoine

Avatar
Alexandre BACQUART
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 */

Avatar
Emmanuel Delahaye
In 'fr.comp.lang.c', "Jean-Luc Andréï" wrote:

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/

Avatar
Emmanuel Delahaye
In 'fr.comp.lang.c', "Jean-Luc Andréï" wrote:

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/

Avatar
DINH Viêt Hoà

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 <sys/types.h>
#include <sys/stat.h>

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

Avatar
Yves ROMAN

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

Avatar
DINH Viêt Hoà


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


1 2 3