bonjour !
Je cherche à créer un répertoire qui est nommé par la date du jour...
Si vous avez des pistes, je suis preneur...
Merci
bonjour !
Je cherche à créer un répertoire qui est nommé par la date du jour...
Si vous avez des pistes, je suis preneur...
Merci
Voila du code qui créé un fichier en fonction du temps :
En gros : GetLocalTime() + sprintf() = la puissance!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 // Création du fichier historique HANDLE hFind; WIN32_FIND_DATA FindFileData; SYSTEMTIME Time; TCHAR NomFichier [64]; DWORD Tmp; hFind = FindFirstFile (RS232_RAPPORT_DOSSIER, &FindFileData); if (hFind == INVALID_HANDLE_VALUE) { if (CreateDirectory (RS232_RAPPORT_DOSSIER, NULL) == 0) { MessageErreurWindow (hWnd, _T("Impossible de créer le répertoire de traçage."), _T("Fonction RS232_Initialisation()"), TRUE); return EXIT_FAILURE;} } else if (!(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) { MessageErreurWindow (hWnd, _T("Un petit malin veut faire planter intentionnellement le programme."), _T("Fonction RS232_Initialisation()"), FALSE); return EXIT_FAILURE; } // Crée le fichier GetLocalTime (&Time); if ( _stprintf_s (NomFichier, 64, _T("%s\\hist_%02d_%02d_%02d__%02d_%02d_%02d.txt"), RS232_RAPPORT_DOSSIER, Time.wDay, Time.wMonth, Time.wYear%100, Time.wHour, Time.wMinute, Time.wSecond) == -1 ){ MessageErreurWindow (hWnd, _T("Erreur dans la création du fichier (100)."), _T("Fonction RS232_Initialisation()"), FALSE); return EXIT_FAILURE; } if ((Rapport = CreateFile (NomFichier, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE){ MessageErreurWindow (hWnd, _T("Erreur dans la création du fichier (200)."), _T("Fonction RS232_Initialisation()"), TRUE); return EXIT_FAILURE; } WriteFile (Rapport, RS232_RAPPORT_ENTETE, RS232_RAPPORT_ENTETE_TAILLE * sizeof (TCHAR), &Tmp, NULL); WriteFile (Rapport, _T("Début du rapport des communications RS232.\r\n"), 44 * sizeof (TCHAR), &Tmp, NULL);
Un conseil: Mettre l'année sur quatre chiffres et non deux.
De plus, pour un meilleur tri des fichiers, utiliser un format année-mois-jours est recommandé (typiquement AAAA-MM-JJ)
Tout à fait exact.
J'avais du pondre ce code en vitesse, et j'avais pas fait attention à ça.
merci pour ces réponses !
J suis débutant en c. J'ai copié collé le code mais toutes les lignes buggent.
Je créé mes codes en C sur dev-c++
Merci
Oui, forcement, on ne peut pas copier-coller des lignes comme ça...
Ce dont tu as besoin se présenterai un peu comme ça :
Je n'ai pas testé, mais dans la logique c'est ça. Par contre il n'y a pas de test d'erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SYSTEMTIME Time; char NomDossier[64]; GetLocalTime (&Time); sprintf (NomDossier, "%04d_%02d_%02d.txt", Time.wYear, Time.wMonth, Time.wDay); CreateDirectory (NomDossier, NULL);
ca bloque direct à la 1ere ligne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #include <malloc.h> #include <stdio.h> #include <stdlib.h> #include <time.h> #include <string.h> #include <math.h> main() { SYSTEMTIME Time; char NomDossier[64]; GetLocalTime (&Time); sprintf (NomDossier, "%04d_%02d_%02d.txt", Time.wYear, Time.wMonth, Time.wDay); CreateDirectory (NomDossier, NULL); return; }
- SYSTEMTIME est un type Windows.
- GetLocalTime() et CreateDirectory() sont des fonctions Windows également
- Donc, il faut inclure <windows.h>
- main() retourne un int. Toujours
- <malloc.h> n'est pas standard. malloc() est déclarée dans stdlib.h
ok merci pour ces précisions...cependant ce code va tourner sur dos donc pas de librairie windows.h possible...
Connaitriez-vous une autre méthode ?
Encore merci pour vos réponses !
en fait en ecumant un peu mieux les pages du net, j'ai trouvé comment faire via un fichier.bat
Mais je ne sais pas comment le lancer à la fin de mon code en c.
Merci à vous !
bon...c'est promis, j'arrête de poser des questions pour rien...
Merci à vous
Code : Sélectionner tout - Visualiser dans une fenêtre à part system("c:\\a.bat");
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager