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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
void PurgeStream(FILE *f)
{
int c;
while((c = fgetc(f)) != '\n' && c != EOF)
{}
}
void CalculSFichier(LPCTSTR str)
{
FILE *pfIn = NULL;
FILE *pfOut = NULL;
CString strIn;
CString strOut;
strIn.Format("c:\\tatouage\\patchwork\\%s",str); // ouvre premier fichier en lecture
pfIn = _tfopen(strIn, _T("r"));
if(pfIn == NULL)
{
printf("impossible d'ouvrir le fichier");
}
strOut.Format("c:\\tatouage\\patchwork\\detect%s",str);
pfOut = _tfopen(strOut, _T("w")); //ouvre le deuxieme fichier en ecriture
if(pfOut == NULL)
{
printf("impossible d'ouvrir le fichier");
}
//Copie les nombres du premier fichier en les incrémentant tous de 1
if((pfIn != NULL) && (pfOut!=NULL))
{
int a, b, c, d;
while(fscanf(pfIn, "(%d,%d)-(%d,%d)", &a, &b, &c, &d)==4)
{
PurgeStream(pfIn);
//Traitement:
//Incrémente
// a++; b--; c++; d--;
int w=((a- b)+( c- d))/2;
//Ecrit
fprintf(pfOut, "%d\n", w);
}
}
//Fermeture du ou des fichiers dont l'ouverture a réussi
if(pfIn)
fclose(pfIn);
if(pfOut)
fclose(pfOut);
}
void CTatoDetecpatchDlg::Oncalculer()
{
// TODO: Add your control notification handler code here
CString str1,str2,str3;
int n= static_cast< CListBox * >(GetDlgItem(IDC_LIST1))->GetCurSel();
// ici je reccupere le nom du fichier pour l'ouvrir
if(n!=LB_ERR) static_cast< CListBox * >(GetDlgItem(IDC_LIST1))->GetText(n,str1);
CalculSFichier( str1);
} |
Partager