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

MFC Discussion :

Visual C++ CFile


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    D�cembre 2004
    Messages
    612
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 612
    Par d�faut Visual C++ CFile
    voila la situation, j'ai 1 grand nombre de bouton et quand je clique dessus ils doivent enregistrer dans 1 fichier 2 chiffres. ils se peut qu'il y ais jusqu'a 20 chiffres de stocker, voir peut etre plus....

    je me suis rensigner et j'ai vue les CFile

    j'ai regarde 1 tuto sur developpez.com, j'ai bien tout taper mais sa marcher pas.

    j'ai chercher sur le forum et je suis tomber sur 1 message d'un admin sur l'enregistrement/lecture sur CFile et API32 j'ai essay� mais il me dit que la fonction Write ne peut pas travailler avec 1 des parametre car c'est 1 int.

    alors merci de me donner le code pour lire et celui pour �crire des donn� et si possible d'en expliquer le fonctionnement.


    merci

  2. #2
    Membre confirm� Avatar de lenouvo
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    252
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 252
    Par d�faut
    Qu'est ce qui ne fonctionne pas dans ton code? il y a des erreurs ou il ne se passe rien � l'execution?
    Sinon si l'ecriture de ton int ne passe pas, passe par un CString::Format
    avant

  3. #3
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut,
    avec un CFile tu peux stocker ce que tu veux meme un entier .
    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
     
        CFile File ("c:\\test", CFile::modeCreate | CFile::modeWrite  | CFile::typeBinary );
          int anInt[] = {1,100,150,200,300,500,700,800,523,100};
          int nSize=sizeof(anInt);
          File.Write(&nSize, sizeof(int));  // 1 int
          File.Write(anInt, sizeof(anInt));// ecriture en 1 seule fois.
          File.Close();
        nSize=0;
        CFile Filer ("c:\\test", CFile::modeRead  | CFile::typeBinary );
        File.Read(&nSize, sizeof(int));
         int nNumber;
         for(int i=0;i<nSize;i++)
        {
              Filer.Read(&nNumber, sizeof(int));
              TRACE("\ni:%d=%d",i,nNumber);
        }
          Filer.Close();
    j'ai pas test� mais �a doit etre bon.

  4. #4
    Membre �clair�
    Profil pro
    Inscrit en
    D�cembre 2004
    Messages
    612
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 612
    Par d�faut
    sa marche pas, j'ai pas tout compris dans ton code, pour cr�� les CFile c'est ok mais sizeof j'ai pas compris comment sa fonctionne, quelqu'un peut me fair 1 schema??

    avec ce que j'ai compris voila le code de 2 bouton(1 ecriture et l'autre lecture, ils font pas que sa: tempo, changement de valeur de variable)

    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 CBrasPPEDlg::OnHaut() 
    {
    	m_Compteur = 0;
    	m_ValTempo.Format("Tempo: %d", m_Compteur);
    	UpdateData(FALSE);
     
    	m_Compteur = 1;
    	m_Atente = 6;
    	m_NumBtn = 1;
     
    	CFile File ("c:\\test", CFile::modeCreate | CFile::modeWrite | CFile::typeBinary);
    	File.Write(m_NumBtn, sizeof(int));
    	File.Close();
     
    	SetTimer(ID_TEMPO, 1000, NULL);
     
    }
     
    void CBrasPPEDlg::OnBas() 
    {
    	m_Compteur = 0;
    	m_ValTempo.Format("Tempo: %d", m_Compteur);
    	UpdateData(FALSE);
     
    	m_Compteur = 1;
    	m_Atente = 6;
    	m_NumBtn = 2;
     
    	CFile File ("c:\\test", CFile::modeRead | CFile::typeBinary);
    	File.Read(m_NumBtn, sizeof(int));
    	File.Close();
     
    	if (m_NumBtn == 1)
    		MessageBox("m_NumBtn vaut 1, gagner!");
    	else
    		MessageBox("m_NumBtn vaut pas 1, perdus!!");
     
    	SetTimer(ID_TEMPO, 1000, NULL);
     
    }
    Message d'erreur apr�s compilation:
    Compiling...
    BrasPPEDlg.cpp
    D:\Programme\Visual\MSDev98\MyProjects\BrasPPE\BrasPPEDlg.cpp(223) : error C2664: 'Write' : cannot convert parameter 1 from 'int' to 'const void *'
    Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
    D:\Programme\Visual\MSDev98\MyProjects\BrasPPE\BrasPPEDlg.cpp(241) : error C2664: 'Read' : cannot convert parameter 1 from 'int' to 'void *'
    Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
    Error executing cl.exe.

    BrasPPE.exe - 2 error(s), 0 warning(s)
    Merci pour vos explication et votre aide


    PS: le code CString::Format a ajouter des erreurs j'ai donc abandonn� cette id�e

  5. #5
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    le code fonctionne (test� sous VC2005) j'ai juste fait un erreur sur nSize:
    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
     
    CFile File ("c:\\test", CFile::modeCreate | CFile::modeWrite  | CFile::typeBinary );
          int anInt[] = {1,100,150,200,300,500,700,800,523,100};
          int nSize=sizeof(anInt)/sizeof(int);
          File.Write(&nSize, sizeof(int));  // 1 int
          File.Write(anInt, sizeof(anInt));// ecriture en 1 seule fois.
          File.Close();
        nSize=0;
        CFile Filer ("c:\\test", CFile::modeRead  | CFile::typeBinary );
        Filer.Read(&nSize, sizeof(int));
         int nNumber;
         for(int i=0;i<nSize;i++)
        {
              Filer.Read(&nNumber, sizeof(int));
              TRACE("\ni:%d=%d",i,nNumber);
        }
          Filer.Close();
    sizeof renvoie la taille en octets du type ou de la variable design�e.
    si tu as regard� mon code Write ou Read prend un pointeur comme argument pour ecrire le contenu d'une variable de type int il faut fournir l'adresse de la variable pour �crire son contenu .
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    File.Read(&m_NumBtn, sizeof(int)); //  &m_NumBtn
    File.Write(&m_NumBtn, sizeof(int)); //  &m_NumBtn

  6. #6
    Membre �clair�
    Profil pro
    Inscrit en
    D�cembre 2004
    Messages
    612
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 612
    Par d�faut
    YESSSSS sa marche merci a vous

  7. #7
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    si c'est ok pense � mettre r�solu sur ton post avec le bouton

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Différences entre Delphi et Visual Basic ?
    Par Anonymous dans le forum D�bats sur le d�veloppement - Le Best Of
    R�ponses: 75
    Dernier message: 30/03/2009, 20h09
  2. Choisir Visual c++ ou Borland C++Builder ?
    Par DevEric dans le forum Choisir un environnement de d�veloppement
    R�ponses: 31
    Dernier message: 14/06/2007, 23h48
  3. requete avec OBCD et visual c++
    Par Anonymous dans le forum MFC
    R�ponses: 12
    Dernier message: 18/11/2004, 16h15
  4. Que choisir ? Visual C++ ou Borland c++ builder ?
    Par ashram dans le forum D�bats sur le d�veloppement - Le Best Of
    R�ponses: 27
    Dernier message: 24/02/2003, 14h39

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