//l'action sur le bouton OK sauvegarde les données dans un fichier
void CBanc_testDlg::OnOK()
{
// TODO: Add extra validation he
int etat;
fichier=fopen("C:/WINDOWS/numero_serie.txt","w+");
etat=fwrite(str,sizeof(char),11,fichier);
if(etat==-1)
AfxMessageBox("problème d'écriture");
fclose(fichier);
}
//génère de nouvelle donnée
void CBanc_testDlg::OnButtondemande()
{
// TODO: Add your control notification handler code here
fichier=fopen("C:/WINDOWS/numero_serie.txt","r+");
//attribut pour récupérer l'année 06 et le mois 07
time_t osBinaryTime;
time( &osBinaryTime ) ;
CTime t(osBinaryTime);
struct tm* osTime;
osTime = t.GetLocalTm( NULL );
if(osTime->tm_mon<10)
str.Format("0%d",osTime->tm_mon+1);
else
str.Format("%d",osTime->tm_mon+1);
//si le fichier le fichier n'existe pas
if(fichier==NULL)
{
fichier=fopen("C:/WINDOWS/numero_serie.txt","a+");
m_editAnnee=t.Format("%y");
m_editMois=str;
m_editLettre="A";
m_editNumero="001";
}
//sinon lire le fichier et récuperer les données avant dans proposée des nouvelles
else
{
char chaineAnnee[2];
char chaineMois[2];
char chaineLettre;
char chaineNumero[3];
fread(&chaineAnnee,sizeof(char),2,fichier);
m_editAnnee.Format("%s",chaineAnnee);
fseek(fichier,4,0);
fread(chaineMois,sizeof(char),2,fichier);
m_editMois.Format("%s",chaineMois);
fseek(fichier,7,4);
fread(&chaineLettre,sizeof(char),1,fichier);
m_editLettre.Format("%c",chaineLettre);
fseek(fichier,9,7);
if(m_editAnnee==t.Format("%y") && m_editMois==str)
{
fread(chaineNumero,sizeof(char),3,fichier);
m_editNumero.Format("%s",chaineNumero);
int num=atoi(m_editNumero);
num++;
if(num<10)
m_editNumero.Format("00%d",num);
else if(num<100)
m_editNumero.Format("0%d",num);
else
m_editNumero.Format("%d",num);
}
}
str.Format("%s %s %s %s\n",m_editAnnee,m_editMois,m_editLettre,m_editNumero);
fclose(fichier);
UpdateData(FALSE);
}
Partager