Recherche du récent fichier

Fermé
savoitors - Modifié le 9 août 2018 à 09:13
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 9 août 2018 à 12:34
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:
#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:

1 réponse

[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié le 9 août 2018 à 12:45
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
#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
0