Nom de fichier variable - C - Programmation
Marsh Posté le 12-11-2005 à 11:17:50
Un moyen plus simple consiste à utiliser sprintf() ce qui donnerait :
Code :
|
Edit : Par ailleurs, il souvent plus pratique d'utiliser la date au format aaaammjj plutôt que jjmmaaaa, car avec le format inversé, les fichiers sont facilement triés.
Edit bis: Merci Elmoricq, pour avoir vu ma faute d'étourderie, et je viens de la corriger dans le code.
Marsh Posté le 12-11-2005 à 11:19:26
macafifi a écrit : Bonjour, |
C'est faisable en standard : time(), localtime() et strftime() (<time.h> ) sont tes amis.
Je te laisse remuer ton neurone. Poste ton code si tu es planté.
Marsh Posté le 12-11-2005 à 12:50:35
Merci pour vos suggestions
C'est vraiment sympa de votre part !
JB
Marsh Posté le 12-11-2005 à 13:51:27
olivthill a écrit : Un moyen plus simple consiste à utiliser sprintf() ce qui donnerait : |
nomfic doit être de type char[] ou char* (ici je le mettrais en char nomfic[FILENAME_MAX])
Marsh Posté le 12-11-2005 à 10:23:59
Bonjour,
Etant débutant, je suis à la recherche de la bonne écriture sous C pour la création d'un nom de fichier variable
avec la date, du genre nomfic="c:\\ficddmmaa.txt" où :
- dd = jour
- mm = mois
- aa = année (il fallait s'en douter !)
La date est déja dispo par la fonction getdate(&dat) et la structure date dat.
Voici ce que j'ai fait pour l'instant :
1. #include<conio.h>
2. #include<dos.h>
3. #include<stdio.h>
4. #include<time.h>
5. #include<string.h>
6.
7. FILE *fichier;
8. char nomfic,jour,mois,annee;
9. struct date dat;
10.
11.
12. main()
13. {
14. clrscr();
15. getdate(&dat);16.
16. printf("%02d/%02d/%04d",dat.da_day,dat.da_mon,dat.da_year);
17. nomfic="c:\\fic";
18. jour=dat.da_day;
19. strcat(nomfic,jour);
20. mois=dat.da_mon;
21. strcat(nomfic,mois);
22. annee=dat.da_year;
23. strcat(nomfic,annee);
24. strcat(nomfic,".txt" );
25.
26. fichier=fopen(nomfic,"a+t" );
27.
28. /* traitement */
29.
30. fclose(fichier);
31. }
Avez-vous un moyen (très certainement) plus simple pour cette routine ?
Merci pour vos réponses
JB