Bonjour,
J'ai ces deux codes de création de fichier qui fonctionnent très bien dans mon programme :
dans l'evenement FormClose pour sauver un fichier log
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 if (TemoinOperationRealisee == true ) { Memo_Status->Lines->Add(""); Memo_Status->Lines->Add("Logiciel acquisition Fermé " + FormatDateTime(" dddd dd mmm yyyy ", Now()) + " à " +FormatDateTime("hh", Now()) +" h "+ FormatDateTime("nn", Now()) +" min "+ FormatDateTime("ss", Now()) +" s ") ; //enregistrement fichier .log de la session AnsiString NomFichierLog = "ARCHIVES\\"; NomFichierLog = NomFichierLog + FormatDateTime("yyyy-mm-dd-hh", Now()) + "h" + FormatDateTime("nn", Now()) + "min" + FormatDateTime("ss", Now()) + "s" + ".log"; Memo_Status->Lines->SaveToFile(NomFichierLog); } else { }
et
Ces deux codes fonctionnent tres bien au moment où je les appelle, SAUF SI j'ai cliqué avant sur un bouton qui fait appel à une action standard TFIleOpen d'une ActionList. Ca plante alors quand je lance l'un ou l'autre des deux codes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 NomFichier = ".\\ARCHIVES\\"; NomFichier = NomFichier + FormatDateTime("yyyy-mm-dd-hh", Now()) + "h" + FormatDateTime("nn", Now()) + "min" + FormatDateTime("ss", Now()) + "s" + ".mash"; FILE *fichier; unsigned long int k; fichier = fopen( NomFichier.c_str(), "w+"); for (k = 0 ; k < NbARecevoir ; k=k+1) { fprintf(fichier, "%c", Donnees[k] ); } fclose(fichier);
Concernant cette action standard, voici ce que j'ai créé :
création d'une ActionList
Ajout d'une action standard TFileOpen
Reglage du filtre pour l'ouverture de fichier
Affectation du nom de cette action à la propriété Action du bouton
...rien de plus
Je suppose qu'en lancant cette action, je charge un flux quelquepart qui fait planter ensuite mon logiciel mais, je ne vous ni quoi ni pourquoi.
L'erreur annoncée par BCB est respectivment "EFCreatorError" et "EAccesViolation" pour les deux codes ci_dessus. (meme pas pareil dans les deux cas... )
merci d'avance
Partager