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 :

créer un fichier ini avec les mfc


Sujet :

MFC

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 110
    Points : 59
    Points
    59
    Par défaut créer un fichier ini avec les mfc
    Bonjour,

    J'ai vu dans FAQ comment lire et écrire dans un fichier ini (on le met sur le répertoire windows, en lui donnant le nom de l'application). Mais moi je voudrais le créer dans le dossier courant et lui donner le nom que je veux.

    Merci de votre aide !

  2. #2
    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
    Points : 17 323
    Points
    17 323

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 110
    Points : 59
    Points
    59
    Par défaut
    CWinApp::WriteProfileString
    BOOL WriteProfileString( LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszValue );
    j'imagine que c'est ce bout de code qui permet de creer le fichier!! mais ça me faait beaucoup d'erreurs! et ça marche pas!!

    voici l'erreur:
    'WriteProfileStringA' : redefinition; different type modifiers

  4. #4
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Points : 1 672
    Points
    1 672
    Par défaut
    Peux tu mettre le bout de code qui te provoque cette erreur. Je pense que tu utilises mal cette fonction. De plus a mon avis tu veux utiliser la fonction de l'API win32 et non celle de la classe CWinApp des MFC.

    Liens vers les deux docs ici et ici.

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 110
    Points : 59
    Points
    59
    Par défaut
    bon j'ai un peu changé le truc!!

    voila ce que je met mnt:

    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
     
    UpdateData();
     
    CString strFilter = "INI Files (*.ini)|*.ini|All Files (*.*)|*.*||";
     
    CFileDialog FileDlg(FALSE, ".ini", m_strOutputFolderPath + m_strConfigFileName, 0, strFilter);
     
    if( FileDlg.DoModal() == IDOK )
    {
    	m_strConfigFileName = FileDlg.GetFileName();
     
    	m_strOutputFolderPath = FileDlg.GetPathName();
    	m_strOutputFolderPath = m_strOutputFolderPath.Left(m_strOutputFolderPath.GetLength() - m_strConfigFileName.GetLength());
    }
     
    UpdateData(FALSE);
     
     
    m_EditConfig.GetWindowText(m_TextConfig);// pour recuperer le text d'un edit
    et donc avec ça jarrive a ouvrir la boite de dialogue permettant de choisir le dossier pour enregistrer er aussi saisir le nom di fichier!!

    mais l'enregistrement ne se fait pas encore!

    il est a noter aussi que je veux mettre dans le fichier le text que je recupere a partir de l'edit

  6. #6
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 110
    Points : 59
    Points
    59
    Par défaut
    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
    CWinApp::GetProfileInt 
    UINT GetProfileInt( LPCTSTR lpszSection, LPCTSTR lpszEntry, int nDefault );
    CWinApp::WriteProfileInt 
    BOOL WriteProfileInt( LPCTSTR lpszSection, LPCTSTR lpszEntry, int nValue );
     
    CWinApp::GetProfileString 
    CString GetProfileString( LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszDefault = NULL );
     
    CWinApp::WriteProfileString 
    BOOL WriteProfileString( LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszValue );
     
    CWinApp::WriteProfileBinary
    BOOL WriteProfileBinary(  LPCTSTR lpszSection,   LPCTSTR lpszEntry,   LPBYTE pData,
       UINT nBytes );
     
    CWinApp::GetProfileBinary
    BOOL GetProfileBinary(LPCTSTR lpszSection,LPCTSTR lpszEntry,LPBYTE* ppData,  UINT* pBytes );
    je comprends pas comment cela ecrit ou lit dans le fichier!!
    il est ou le nom du fichier?

  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
    Points : 17 323
    Points
    17 323
    Par défaut
    les réponses sont dans la faq ....
    Citation Envoyé par faq
    Par défaut le .ini prend le nom du programme.
    donc le nom n'est pas à spécifier quand on utilise ces méthodes.
    le fichier prend le nom du programme et il est stocké dans le répertoire windows.
    si on veut un répertoire ou un nom spécifique on le change comme décrit dans la faq.
    Autrement on utilise les api 32.

  8. #8
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 110
    Points : 59
    Points
    59
    Par défaut
    ok! et donc c'est ce code la que je doit utilisé si je veux ecrire des String!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CWinApp::WriteProfileString 
    BOOL WriteProfileString( LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszValue );
    mais quand je le met tel que il me rend les erreurs indiqué ci-dessus!!

  9. #9
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Points : 1 672
    Points
    1 672
    Par défaut
    Montre comment tu l'utilises avec un bout de code peut être qu'on comprendra mieux ton erreur.

  10. #10
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    il a des fortes chances qu'il écrive le code comme le prototype de la méthode...
    pourtant il y des exemples d'utilisation ...
    http://cpp.developpez.com/faq/vc/?pa...niReadWriteInt

  11. #11
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 110
    Points : 59
    Points
    59
    Par défaut
    voila ce que je dois faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AfxGetApp()->WriteProfileString( LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszValue );
    je dois lui faire passer deux String et un int, mais que représente chacun?

  12. #12
    Membre émérite
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Points : 2 677
    Points
    2 677
    Par défaut
    et au moins jeter un coup d'œil aux exemples, que les gens qui prennent le temps de t'aider te link, ça ne te dirait pas ?

  13. #13
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Points : 1 672
    Points
    1 672
    Par défaut
    C'est vrai que tu pourrait regarder quand meme les exemple de la FAQ VC qui est tres bien faite.

    Pour info :

    Un fichier INI c'est :
    [SECTION] -> variable LPCTSTR lpszSection
    key=1 -> key est de type LPCTSTR lpszEntry c'est l'entrée et 1 c'est la valeur (LPCTSTR lpszValue )
    En esperant qu'avec ça tu t'en sorte.

  14. #14
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 110
    Points : 59
    Points
    59
    Par défaut
    merci à tous, c bon ça marche et voila ce que j'ai fait

    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
    CString strFilter = "INI Files (*.ini)|*.ini|All Files (*.*)|*.*||";
     
    	CFileDialog FileDlg(TRUE, ".ini", m_strOutputFolderPath + m_strConfigFileOpen, 0, strFilter);
     
    	if( FileDlg.DoModal() == IDOK )
     
    	{
     
    	//	m_strConfigFileName = FileDlg.GetFileName();
    		m_strOutputFolderPath = FileDlg.GetPathName();
    		CFile m_fopenFile(m_strOutputFolderPath,CFile::modeRead);
    		int length = m_fopenFile.GetLength();
    		UINT nBytesRead= m_fopenFile.Read(&m_TextConfig,length);
     
    		m_EditConfig.SetWindowText(m_TextConfig);
     
     
    	}
    	UpdateData(FALSE);
    je peux mnt enregistrer mon .ini ou je veux et avec le nom que je veux! et il contiendra le texte que je saisis dans un CEdit multiligne!

  15. #15
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    tu veux mon avis ?, tu fais n'importe quoi, si c'est comme ça que tu penses gérer un fichier .ini .

  16. #16
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Points : 1 672
    Points
    1 672
    Par défaut
    Je comprends même pas ce que fais ton code, enfin le rapport de celui-ci avec un fichier INI mais en tout cas je vois pas comment tu peux gérer ce type de fichier avec ce que tu fais. Sinon peut être que ce n'est pas d'un fichier ini que tu avais besoins...

  17. #17
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 110
    Points : 59
    Points
    59
    Par défaut
    je ne veux pas le gérer je veus juste le créer, une fois pour toute!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 01/06/2010, 14h33
  2. Réponses: 2
    Dernier message: 30/09/2009, 16h43
  3. Réponses: 4
    Dernier message: 12/02/2007, 17h48
  4. Réponses: 2
    Dernier message: 09/01/2007, 10h21
  5. les fichiers avec les mfc
    Par oclone dans le forum MFC
    Réponses: 4
    Dernier message: 05/01/2007, 15h30

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