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)
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
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);
Partager