Recherche du récent fichier
savoitors
-
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je suis entrain d'écrire un programme en C permettant d'identifier parmis 100 fichier le plus récent .
le programme demandera d'entrer au clavier le nom du fichier, sa date de création (entre 1 et 31) , le mois (1 et 12) , l'année aussi.puis le programme affichera le plus récent .
je suis bloqué au niveau de la comparaison entre les dates , mmois et année. voici ce que j'ai fais:
je suis entrain d'écrire un programme en C permettant d'identifier parmis 100 fichier le plus récent .
le programme demandera d'entrer au clavier le nom du fichier, sa date de création (entre 1 et 31) , le mois (1 et 12) , l'année aussi.puis le programme affichera le plus récent .
je suis bloqué au niveau de la comparaison entre les dates , mmois et année. voici ce que j'ai fais:
#include <stdio.h> int main(){ system("title=La date recent"); system("COLOR F5"); int i=0,j=0,nbr_fichier; int jj[2],mm[2],aaaa[4], dat_recent[i], dat_ancien[i]; char nom[i]; printf("Entrer les valeurs \n"); printf("Entrer le nombre de fichier a entrer --> "); scanf("%d",&nbr_fichier); while(nbr_fichier>100){ printf("vous ne devez pas entrer plus de cents fichiers"); } for(i=0;i<nbr_fichier; i++){ printf("Le %der fichier\n Le nom du fichier --> ",i+1); /* printf("Le nom du fichier --> ");*/ scanf("%s",&nom[i]); printf("Le jour de creation --> "); scanf("%d",&jj[i]); while(jj[i]==0){ printf("Veuillez saisir une date entre 1 et 31 --> "); scanf("%d",&jj[i]); } while(jj[i]>31){ printf("Veuillez saisir une date entre 1 et 31 --> "); scanf("%d",&jj[i]); } printf("Le mois de creation --> "); scanf("%d",&mm[i]); while(mm[i]=0){ printf("Veuillez saisir une date entre 1 et 12 --> "); scanf("%d",&mm[i]); } while(mm[i]>31){ printf("Veuillez saisir une date entre 1 et 12 --> "); scanf("%d",&mm[i]); } printf("L'annees de creation --> "); scanf("%d",&aaaa[i]); while(aaaa[i]<1000){ printf("Veuillez saisir une date correcte --> "); scanf("%d",&aaaa[i]); } /*system("cls");*/ } return 0; getch(); }
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Recherche du récent fichier
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
1 réponse
Salut savoitors,
Si tu dois "identifier parmis 100 fichier le plus récent", je ne comprends pas pourquoi dans ton code, tu demandes à l'utilisateur de saisir une date (de plus de façon discutable, puisque tous les mois n'ont pas 31 jours).
Ton programme devrait simplement obtenir la "date" dans les propriétés du fichier, et comparer les dates obtenues du système entre elles.
Tu sembles être sous Windows au vu de ton code, si c'est le cas, tu peux te servir de l'API Windows (fais un
- récupères la "date" d'un fichier avec GetFileTime()
- compares les "dates" avec CompareFileTime()
En termes de "dates", le système Windows garde trace des dates de création, date de dernier accès et date de dernière modification. GetFileTime() permet de récupérer ces 3 types de date pour un fichier donné.
A toi de décider ensuite ce que tu veux comparer.
La documentation de Microsoft des deux fonctions précitées figure sur les liens que j'ai mis ci-dessus.
Tu peux aussi lire la page suivante pour une présentation générale des différentes fonctions de l'API Windows relatives aux "dates" de fichiers :
https://docs.microsoft.com/en-us/windows/win32/sysinfo/file-times
Note que je n'ai pas regardé ton code en détails, ni testé ton code.
Dal
Si tu dois "identifier parmis 100 fichier le plus récent", je ne comprends pas pourquoi dans ton code, tu demandes à l'utilisateur de saisir une date (de plus de façon discutable, puisque tous les mois n'ont pas 31 jours).
Ton programme devrait simplement obtenir la "date" dans les propriétés du fichier, et comparer les dates obtenues du système entre elles.
Tu sembles être sous Windows au vu de ton code, si c'est le cas, tu peux te servir de l'API Windows (fais un
#include <windows.h>) et tu :
- récupères la "date" d'un fichier avec GetFileTime()
- compares les "dates" avec CompareFileTime()
En termes de "dates", le système Windows garde trace des dates de création, date de dernier accès et date de dernière modification. GetFileTime() permet de récupérer ces 3 types de date pour un fichier donné.
A toi de décider ensuite ce que tu veux comparer.
La documentation de Microsoft des deux fonctions précitées figure sur les liens que j'ai mis ci-dessus.
Tu peux aussi lire la page suivante pour une présentation générale des différentes fonctions de l'API Windows relatives aux "dates" de fichiers :
https://docs.microsoft.com/en-us/windows/win32/sysinfo/file-times
Note que je n'ai pas regardé ton code en détails, ni testé ton code.
Dal