mahojul
Messages postés27Date d'inscriptionlundi 26 janvier 2009StatutMembreDernière intervention 6 mars 2009
-
27 févr. 2009 à 07:15
mahojul
Messages postés27Date d'inscriptionlundi 26 janvier 2009StatutMembreDernière intervention 6 mars 2009
-
27 févr. 2009 à 08:04
Bonjour à tous,
Voici le code d'un timer que j'ai sur un de mes dialog :
void TTest::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
long lCounter = 0;
long lStatus = 0;
bool test = false;
char valeurCounter[50];
time_t timer1;
time(&timer1);
int secondes, minutes, heures ;
char c_heures[5];
char c_minutes[5];
char c_secondes[5];
char c_HeureComplete[50];
struct tm *newTime1;
newTime1 = localtime(&timer1);
heures = newTime1->tm_hour; // Les heures sont dans "heures"
minutes = newTime1->tm_min; // Les minutes sont dans "minutes"
secondes = newTime1->tm_sec; // Les secondes sont dans "secondes"
// Mise à jour des données (Case à cocher notamment)
UpdateData(true);
} //else de if ((lStatus & PM249_ERROR_BIT) == PM249_ERROR_BIT)
m_gCounter.Invalidate();
m_hTmpBitmap = LoadBitmap (AfxGetResourceHandle(), MAKEINTRESOURCE(IDB_LED_R));
m_gLed.SetBitmap(m_hTmpBitmap);
DeleteObject(m_hTmpBitmap);
} // else de if (!TP_PM249_GetCounter(m_iAxe + 1, &lCounter, &lStatus))
CDialog::OnTimer(nIDEvent);
if (m_chk_export)
{
//test si fichier existe
if((_access( "c:\\test.txt", 0 )) != -1 )
{
// Conversion des INT en CHAR (pour affichage)
sprintf(c_heures, "%d", heures); //HEURE
sprintf(c_minutes, "%d", minutes); //MINUTES
sprintf(c_secondes, "%d", secondes); //SECONDES
// Va afficher le format de l'heure suivant : HH:MM:SS
strcat(c_heures,":");
strcat(c_heures,c_minutes);
strcat(c_heures,":");
strcat(c_heures,c_secondes);
// On ajoute la valeur du compteur pour l'afficher plus loins ...
strcat(c_heures," --> ");
strcat(c_HeureComplete,c_heures);
strcat(c_HeureComplete,valeurCounter);
// Ouverture du fichier
CStdioFile f1 ("c:\\test.txt", CFile::modeCreate | CFile::modeWrite | CFile::typeText );
L'objectif de ce timer c'est d'afficher une valeur dans une zone de texte présente sur le dialog et de l'écrire dans un fichier texte.
Actuellement, tout fonctionne correctement mais je désirerais que mon fichier text se remplisse au fur et à mesure des passages ... pas que la première ligne se remplace à chaque passage ...
Actuelement le contenu de mon fichier texte se présente comme suit :
Ligne 1 : 12:45:27 --> 0.0032134
Et ce que j'aimerais c'est ceci :
Ligne 1 : 12:45:27 --> 0.0032234
Ligne 2 : 12:45:35 --> 0.0036734
Ligne 3 : 12:45:45 --> 0.0032174
Ligne 4 : 12:45:55 --> 0.0039744
etc...
mahojul
Messages postés27Date d'inscriptionlundi 26 janvier 2009StatutMembreDernière intervention 6 mars 2009 27 févr. 2009 à 08:04
Chers amis ...
Je ne sais pas si je viens d'avoir une illumination ou pas ... mais ... j'ai réussi ... ... ... c'est assez incroyable car cela fait quand même quelques jours que je galère là dessus ... ...
Voici mon code : (en bleu ce qui n'a pas changé et en rouge ce qui a changé)
void TTest::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
long lCounter = 0;
long lStatus = 0;
bool test = false;
char valeurCounter[50];
time_t timer1;
time(&timer1);
int secondes, minutes, heures ;
char c_heures[5];
char c_minutes[5];
char c_secondes[5];
char c_HeureComplete[50];
struct tm *newTime1;
newTime1 = localtime(&timer1);
heures = newTime1->tm_hour; // Les heures sont dans "heures"
minutes = newTime1->tm_min; // Les minutes sont dans "minutes"
secondes = newTime1->tm_sec; // Les secondes sont dans "secondes"
// Mise à jour des données (Case à cocher notamment)
UpdateData(true);
} //else de if ((lStatus & PM249_ERROR_BIT) == PM249_ERROR_BIT)
m_gCounter.Invalidate();
m_hTmpBitmap = LoadBitmap (AfxGetResourceHandle(), MAKEINTRESOURCE(IDB_LED_R));
m_gLed.SetBitmap(m_hTmpBitmap);
DeleteObject(m_hTmpBitmap);
} // else de if (!TP_PM249_GetCounter(m_iAxe + 1, &lCounter, &lStatus))
CDialog::OnTimer(nIDEvent);
if (m_chk_export)
{
//test si fichier existe
if((_access( "c:\\test.txt", 0 )) != -1 )
{
// Conversion des INT en CHAR (pour affichage)
sprintf(c_heures, "%d", heures); //HEURE
sprintf(c_minutes, "%d", minutes); //MINUTES
sprintf(c_secondes, "%d", secondes); //SECONDES
// Va afficher le format de l'heure suivant : HH:MM:SS
strcat(c_heures,":");
strcat(c_heures,c_minutes);
strcat(c_heures,":");
strcat(c_heures,c_secondes);
// On ajoute la valeur du compteur pour l'afficher plus loins ...
strcat(c_heures," --> ");
strcat(c_HeureComplete,c_heures);
strcat(c_HeureComplete,valeurCounter);
// Ouverture du fichier
CStdioFile f1 ("c:\\test.txt", CFile::modeCreate | CFile::modeNoTruncate |CFile::modeWrite);
// Ecrire à la suite du fichier (à la fin)
f1.SeekToEnd();
f1.WriteString(c_HeureComplete);