IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

random & cr�ation du fichier


Sujet :

Visual C++

  1. #1
    Membre �clair� Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Par d�faut random & cr�ation du fichier
    bonsoir,
    svp je veux selectioner n paires de pixels al�atoirement (pi,qi), les sauvegareder dans un fichier pour puisse les modifient ap�es ( par exemple faire: incrementer chaque pixel de 1)
    pour cela j'ai cre� une boite de dialog, qui contient les �xtrimit�s de l'intervalle , initilaiseur du g�n�rateur( random), el n: nombre de paires pixels, et le button creer qui va creer ces valeurs et les sauvegareder ds le fichier

    le probl�me c'est que je sais pas comment je peux creer un fichier dedans un dossier ( ex c:\\Demo\\patch) qui porte le nom (ex : txt_init , init valeur que j'initiale mon gen�ratuer)

    j'ai fait juste un essai, mais cette fois �i j'ai cr�e le dossier � la main

    voici le code:
    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
     
    void CTatoSelectNDlg::Onselect() 
    {
    	// TODO: Add your control notification handler code here
    	UpdateData();
     
    	int Larg = GetDlgItemInt(IDC_EDIT1);
    	int Haut= GetDlgItemInt(IDC_EDIT2);
    	int Init = GetDlgItemInt(IDC_EDIT3);
    	int Selectn = GetDlgItemInt(IDC_EDIT4);
     
    	srand( (unsigned )Init );
     
    	// Traitement différent selon nombre de bits/pixel
    	int x,y,x1,y1;
    	  FILE *f;  
    	  	f=fopen("c:\\tatouage\\patch\\essai.txt","w" ); 
    	for (int i=0; i<Selectn; i++)
    	{
     
    	       x= (rand()/(double)RAND_MAX)* Larg;
    		   y= (rand()/(double)RAND_MAX)* Haut;
    		   x1= (rand()/(double)RAND_MAX)* Larg;
    		   y1= (rand()/(double)RAND_MAX)* Haut;
     
    fprintf(f,"(%d,%d)-(%d,%d) \n",x,y,x1,y1); 
     
    	fclose;
     
    	}
     
    }
    est ce quelqu'un m'aider pour que le fichier soit creer automatiquement
    merci

  2. #2
    Membre chevronn�
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    464
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 464
    Par d�faut
    Pour cr�er un fichier dans un nouveau dossier, il faut d'abord cr�er le dossier; tu as le choix entre _mkdir (CRT) et CreateDirectory (win32).

  3. #3
    Membre �clair� Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Par d�faut
    si par exemple , je cree le dossier manuellement, et je sp�cifie le chemin complet
    ex: C:\\demo\\patch
    je veux que mes fichiers crees existent dans ce dossier

  4. #4
    Membre �clair� Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Par d�faut
    j'ai r�ussi � creer le dossier mais c'est pas comme je veux
    le nom du fihier je le modifie manuellement ( jusqu'� mnt je sais pas ou je mets les %d%d ,Init, n)
    voic le code
    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
    35
    36
    37
    38
    39
    40
    41
     
    void CTatoSelectNDlg::Onselect() 
    {
    // TODO: Add your control notification handler code here
    UpdateData();
     
    int Larg = GetDlgItemInt(IDC_EDIT1);
    int Haut= GetDlgItemInt(IDC_EDIT2);
    int Init = GetDlgItemInt(IDC_EDIT3);
    int Selectn = GetDlgItemInt(IDC_EDIT4);
     
    srand( (unsigned )Init );
     
    // Traitement différent selon nombre de bits/pixel
    int x,y,x1,y1;
     
    FILE *f; 
     
     
    //HANDLE k = CreateFile (" c:\\tatouage\\patchwork\\text.txt", GENERIC_WRITE, FILE_SHARE_WRITE, NULL,FILE_ATTRIBUTE_ARCHIVE,FILE_FLAG_WRITE_THROUGH ,SECURITY_ANONYMOUS);
    HANDLE hFile = CreateFile(TEXT("c:\\tatouage\\patchwork\\test.txt"),GENERIC_READ|GENERIC_WRITE,FILE_SHARE_WRITE,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,NULL);
     
    //j'ai pas compris une chose , quel est le role du hFile??
    //par exemple je met f=fopen("hFile","w") ; le fichier cett fois çi sera cree ds "C:\\tatouage"!!!
    //avec une format inconne donc moi je choisit de l'ouvrir par bloc note
    f=fopen("c:\\tatouage\\patchwork\\test.txt","w" );
    for (int i=0; i<Selectn; i++)
    {
     
    x= (rand()/(double)RAND_MAX)* Larg;
    y= (rand()/(double)RAND_MAX)* Haut;
    x1= (rand()/(double)RAND_MAX)* Larg;
    y1= (rand()/(double)RAND_MAX)* Haut;
     
    fprintf(f,"(%d,%d)-(%d,%d) \n",x,y,x1,y1); 
     
    fclose;
     
    }
     
    }
    est ce qq1 peut m'aider?

  5. #5
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    CreateFile(), c'est pour l'API de fichiers de Windows. On n'utilise pas les fonctions de stdio.h avec le handle retourn� par CreateFile() : On utilise les fonctions Win32 WriteFile(), ReadFile(), CloseHandle(), etc.

    Si tu tiens � cr�er ton fichier avec CreateFile(), tu peux toujours refermer le handle juste ap�rs avec CloseHandle() pour r�ouvrir le fichier cr�� avec fopen().
    Et l�, tu n'auras plus besoin du flag FILE_SHARE_WRITE...
    Et tu n'as pas besoin non plus des OVERLAPPED I/O... Quand on ne sait pas ce qu'on fait, on s'abstient...
    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.

  6. #6
    Membre �clair� Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Par d�faut
    si je ferme le handel hFile
    et j'ouvre mon fichier par fopen
    donc qu'est ce que je met dans fopen

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
     
    	 	f=fopen("c:\\tatouage\\patchwork\\test.txt","w" );
    je dois mettre tout le chemin

    pour writefile()

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    BOOL WriteFile(
      HANDLE hFile,                    // handle to file to write to
      LPCVOID lpBuffer,                // pointer to data to write to file
      DWORD nNumberOfBytesToWrite,     // number of bytes to write
      LPDWORD lpNumberOfBytesWritten,  // pointer to number of bytes written
      LPOVERLAPPED lpOverlapped        // pointer to structure for overlapped I/O
    );
    j'ai jamais travaill�e avec elle, donc je sais pas comment determiner le nombre de bits � ecrire , ect et la remplacer par fprintf et fopen

  7. #7
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Pour commencer, pourquoi cr�es-tu le fichier avec CreateFile() au lieu de le cr�er avec fopen() ?
    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.

  8. #8
    Membre �clair� Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Par d�faut
    au debut , j'ai pas utilis�e creatfile()
    juste fopen & fprintf
    mais le probl�me que je rencontre c'est : creer d'abord mon fichier � la main puis metter tt le chemn dans fopen
    si pour cela , j'ai cherch� une m�thode qui va le creer automatiquemet , puis je l'ouvre et remplir par fprintf ( comme decrit ds ma fonction)

  9. #9
    Membre �clair� Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Par d�faut
    mais mantenant je la compile sans fcreatfile() , �a marche bien
    je sais pas pourquoi avant mon dossier restera vide!!!!
    donc le probl�me mantenat comment je puisse modifier le nom du mon fihier selon les valeurs que je tape du ( Init & Selectn)?

  10. #10
    Membre �clair� Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Par d�faut
    j'ai essaie de faire

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
     
    CString str;
    str.Format("c:\\tatouage\\patchwork\\test%d_%d.txt",Init,Selectn);
     
    f=fopen("str","w" );
    mais ne marche pas
    le fichier porte le nom str + exste ds le chemin " c:\\tatouage"

  11. #11
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Pour commencer, essaie d'afficher la cha�ne:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    printf("Fichier: \"%s\".\n", static_cast< LPCSTR >(str));
    Ensuite, essaie de conna�tre l'erreur retourn�e quand fopen() foire (pour fopen(), consulte errno)...
    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.

  12. #12
    Membre �clair� Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Par d�faut
    j'ai r�solu mon pb
    je dois pas metter " str "
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
     
    			CString str;
    			str.Format("c:\\tatouage\\patchwork\\test%d_%d.txt",Init,Selectn);
    			f=fopen(str,"w" );
    maintenat je dois ouvrir mon fichier ( choisir le nom selon ul Listbox)et rajouter 1 � chaque paire
    j'ai pas encore terminer mon algorithme
    jete remercie

  13. #13
    Membre �clair� Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Par d�faut
    salut
    j'ai chang� un peu mon algorithme, au lieu que je fait entrer largeur et hauteur( ou bien l'intevalle), je veux que lorsue je'ouvre une image par defaut ses dimensions seront les extrimit�s de mon intervalle.
    pour cela j'ai cree une fonction dans la classe CImage:
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    BOOL CImage::creepatch()
     
    {
     if(!m_hDib)
    		return FALSE;	// DIB non valide
     
    	// On crée une nouvelle zone mémoire pour accueillir le nouveau bitmap
    	HGLOBAL hNewDib=GlobalAlloc(GHND, GlobalSize(m_hDib));
    	if(!hNewDib)
    		return FALSE;  // Pas assez de mémoire ou problème
     
    	LPBITMAPINFOHEADER BmSrcInfo=(LPBITMAPINFOHEADER)GlobalLock(m_hDib);
    	LPBITMAPINFO biSrc=(LPBITMAPINFO)BmSrcInfo;
     
    	LPBITMAPINFOHEADER BmDestInfo=(LPBITMAPINFOHEADER)GlobalLock(hNewDib);
    	LPBITMAPINFO biDest=(LPBITMAPINFO)BmDestInfo;
     
    	// Détermination du nombre de couleurs
    	int nColors = BmSrcInfo->biClrUsed ? BmSrcInfo->biClrUsed : 0x1FF & (1 << BmSrcInfo->biBitCount);
     
    	// Copie du Header + palette ds le nouveau bitmap
    	CopyMemory(biDest, biSrc, BmSrcInfo->biSize+nColors*sizeof(RGBQUAD));
     
    	// Détermination de la zone des bits de l'image source et largeur lignes en octets
    	BYTE* lpSrcBits = (BYTE*)BmSrcInfo+BmSrcInfo->biSize+nColors*sizeof(RGBQUAD);
    	int nScanWidth = WIDTHBYTES(BmSrcInfo->biWidth * BmSrcInfo->biBitCount);
     
    	// Détermination de la zone des bits de l'image destination
    	BYTE* lpDestBits = (BYTE*)BmDestInfo+BmDestInfo->biSize+nColors*sizeof(RGBQUAD);
     
    // Traitement différent selon nombre de bits/pixel
     
     
     
    	// Traitement différent selon nombre de bits/pixel
    	int x,y,x1,y1;
     
     
    	       x= (rand()/(double)RAND_MAX)* BmSrcInfo->biWidth;
    		   y= (rand()/(double)RAND_MAX)* BmSrcInfo->biHeight;
    		   x1= (rand()/(double)RAND_MAX)* BmSrcInfo->biWidth;
    		   y1= (rand()/(double)RAND_MAX)* BmSrcInfo->biHeight;
     
     
     
    GlobalUnlock(m_hDib);
     
    return TRUE;
    }
    et je la fait appler ds mon classe Dlg
    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
    35
    36
    37
    38
    39
    40
    41
     
    void CTatoSelectNDlg::Onselect() 
    {
    	// TODO: Add your control notification handler code here
    	UpdateData();
     
    //	int Larg = GetDlgItemInt(IDC_EDIT1);
    //	int Haut= GetDlgItemInt(IDC_EDIT2);
    	int Init = GetDlgItemInt(IDC_EDIT3);
    	int Selectn = GetDlgItemInt(IDC_EDIT4);
     
     
     
    srand( (unsigned )Init );
    	int x,y,x1,y1;
     
    	  FILE *f; 
     
    			CString str;
    			str.Format("c:\\tatouage\\patchwork\\test%d_%d.txt",Init,Selectn);
    			f=fopen(str,"w" );
    				for (int i=0; i<Selectn; i++)
    	{
     
    	       m_Image.creepatch();
     
    	fprintf(f,"(%d,%d)-(%d,%d) \n",x,y,x1,y1); 
     
    	fclose;
     
    	}
    /*	srand( (unsigned )Init );
     
    	// Traitement différent selon nombre de bits/pixel
    	int x,y,x1,y1;
     
    	  FILE *f; 
     
    			CString str;
     
    }
    le probl�me que je rencontre; c'est que le fichier a cr�e mais il est remplit par des valeurs incoyable :
    ex
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    (-858993460,-858993460)-(-858993460,-858993460) 
    (-858993460,-858993460)-(-858993460,-858993460) 
    (-858993460,-858993460)-(-858993460,-858993460) 
    (-858993460,-858993460)-(-858993460,-858993460)
    est ce qq1 peut m'expliquer quellle est ma faute?

  14. #14
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    -858993460 = 0xCCCCCCCC en hexa.
    --> Valeurs non-initialis�es.
    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.

  15. #15
    Membre �clair� Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Par d�faut
    mais d'ou vient ces valeurs!
    moi j'ouvvre une image 512*512 par exemple
    j'essaie d'initialiser x,y,x1,et y1 par 0
    cette fois ci valeurs sont tous nuls
    je sais pas ou est le pb?

  16. #16
    Membre �clair� Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Par d�faut
    j'ai encore modifi� la fonction:
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    BOOL CImage::creepatch(int x,int y,int x1,int y1)
     
    {
     if(!m_hDib)
    		return FALSE;	// DIB non valide
     
    	// On crée une nouvelle zone mémoire pour accueillir le nouveau bitmap
    	HGLOBAL hNewDib=GlobalAlloc(GHND, GlobalSize(m_hDib));
    	if(!hNewDib)
    		return FALSE;  // Pas assez de mémoire ou problème
     
    	LPBITMAPINFOHEADER BmSrcInfo=(LPBITMAPINFOHEADER)GlobalLock(m_hDib);
    	LPBITMAPINFO biSrc=(LPBITMAPINFO)BmSrcInfo;
     
    	LPBITMAPINFOHEADER BmDestInfo=(LPBITMAPINFOHEADER)GlobalLock(hNewDib);
    	LPBITMAPINFO biDest=(LPBITMAPINFO)BmDestInfo;
     
    	// Détermination du nombre de couleurs
    	int nColors = BmSrcInfo->biClrUsed ? BmSrcInfo->biClrUsed : 0x1FF & (1 << BmSrcInfo->biBitCount);
     
    	// Copie du Header + palette ds le nouveau bitmap
    	CopyMemory(biDest, biSrc, BmSrcInfo->biSize+nColors*sizeof(RGBQUAD));
     
    	// Détermination de la zone des bits de l'image source et largeur lignes en octets
    	BYTE* lpSrcBits = (BYTE*)BmSrcInfo+BmSrcInfo->biSize+nColors*sizeof(RGBQUAD);
    	int nScanWidth = WIDTHBYTES(BmSrcInfo->biWidth * BmSrcInfo->biBitCount);
     
    	// Détermination de la zone des bits de l'image destination
    	BYTE* lpDestBits = (BYTE*)BmDestInfo+BmDestInfo->biSize+nColors*sizeof(RGBQUAD);
     
    // Traitement différent selon nombre de bits/pixel
     
     
     
    	// Traitement différent selon nombre de bits/pixel
    	// x=0,y=0,x1=0,y1=0;
     
     
    	       x= (rand()/(double)RAND_MAX)* BmSrcInfo->biWidth;
    		   y= (rand()/(double)RAND_MAX)* BmSrcInfo->biHeight;
    		   x1= (rand()/(double)RAND_MAX)* BmSrcInfo->biWidth;
    		   y1= (rand()/(double)RAND_MAX)* BmSrcInfo->biHeight;
     
     
     
    GlobalUnlock(m_hDib);
     
    return TRUE;
    }
    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
     
    void CTatoSelectNDlg::Onselect() 
    {
    	// TODO: Add your control notification handler code here
    	UpdateData();
     
    //	int Larg = GetDlgItemInt(IDC_EDIT1);
    //	int Haut= GetDlgItemInt(IDC_EDIT2);
    	int Init = GetDlgItemInt(IDC_EDIT3);
    	int Selectn = GetDlgItemInt(IDC_EDIT4);
     
     
    srand( (unsigned )Init );
    	int	 x=0,y=0,x1=0,y1=0;
     
    	  FILE *f; 
     
    			CString str;
    			str.Format("c:\\tatouage\\patchwork\\test%d_%d.txt",Init,Selectn);
    			f=fopen(str,"w" );
    				for (int i=0; i<Selectn; i++)
    	{
     
    	       m_Image.creepatch(x,y,x1,y1);
     
    	fprintf(f,"(%d,%d)-(%d,%d) \n",x,y,x1,y1); 
     
    	fclose;
     
    	}
    }
    le resultat:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    (0,0)-(0,0) 
    (0,0)-(0,0) 
    (0,0)-(0,0) 
    (0,0)-(0,0)
    !!!!

  17. #17
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    1. Ben... On peut savoir � quoi servent tes variables? Tu n'�cris jamais dedans!
      C'�tait pourtant simple � comprendre... Je commence � croire que tu as l'�ge de ton avatar...
    2. Ton code n'appelle pas fclose().
    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.

  18. #18
    Membre �clair� Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Par d�faut
    je t'explique
    avant je fait entrer les extrimit�s de mon inrvalle ds la boite dialog( supposons que sont es dimensions d'une image)
    j'ai ce code qui marche tres bien
    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
    35
    36
    37
     
     
    void CTatoSelectNDlg::Onselect() 
    {
    	// TODO: Add your control notification handler code here
    	UpdateData();
     
    	int Larg = GetDlgItemInt(IDC_EDIT1);
    	int Haut= GetDlgItemInt(IDC_EDIT2);
    	int Init = GetDlgItemInt(IDC_EDIT3);
    	int Selectn = GetDlgItemInt(IDC_EDIT4);
    srand( (unsigned )Init );
     
    	// Traitement différent selon nombre de bits/pixel
    	int x,y,x1,y1;
     
    	  FILE *f; 
     
    			CString str;
    			str.Format("c:\\tatouage\\patchwork\\test%d_%d.txt",Init,Selectn);
    			f=fopen(str,"w" );
     
    	for (int i=0; i<Selectn; i++)
    	{
     
    	       x= (rand()/(double)RAND_MAX)* Larg;
    		   y= (rand()/(double)RAND_MAX)* Haut;
    		   x1= (rand()/(double)RAND_MAX)* Larg;
    		   y1= (rand()/(double)RAND_MAX)* Haut;
     
    	fprintf(f,"(%d,%d)-(%d,%d) \n",x,y,x1,y1); 
     
    	fclose;
     
    	}
     
    }
    maintenat , je veux que lorsue j'ouvre une image, ses dimensions seront mes nouvelle extrimit�es par d�faut
    pour cela j'�cris la 1er fonction
    et mes variables retourne juste un nombre al�atoire ( random* largeur o bien hauteur du mon image)
    et enfin je fais l'appele de cette fonction , j'entre les valeurs Selectn et Init
    c tout
    je veux afficher ces paires pixels( je dois avoir meme resultat qu'avant le changement)

Discussions similaires

  1. cr�ation de fichiers dans le disque dur
    Par sex-sansbol dans le forum ASP
    R�ponses: 6
    Dernier message: 24/08/2004, 09h39
  2. Cr�ation de fichiers CAB
    Par Polux63 dans le forum Windows
    R�ponses: 5
    Dernier message: 22/08/2004, 10h50
  3. Cr�ation de fichier
    Par gsxr man dans le forum ASP
    R�ponses: 2
    Dernier message: 28/06/2004, 22h19
  4. R�ponses: 8
    Dernier message: 03/09/2003, 00h47
  5. cr�ation de fichiers .x
    Par Pazz dans le forum DirectX
    R�ponses: 1
    Dernier message: 03/12/2002, 00h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo