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

C Discussion :

Fichier ini ??


Sujet :

C

Vue hybride

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Par défaut Fichier ini ??
    Environnement C :

    J'uilise la fonction GetPrivateProfileString et ca ne fonctionnement pas , je suis dans Visual studio.

    Faut-il mettre une dll particuliere ou une librairie pour que sa fonctionne ?

    Le fichier ini est correct.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    char resultat[255];
     
    GetPrivateProfileString("option", "test",  "toto", resultat, 255, "test.ini");
     
    je recupere toujours blanc dans resultat.
     
    fichier test.ini
     
    [option]
    test = coucou c'est moi
    Merci de votre aide.

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut Re: Fichier ini ??
    Citation Envoyé par andromeda
    J'uilise la fonction GetPrivateProfileString et ca ne fonctionnement pas , je suis dans Visual studio.
    Ca fonctionne si le fichier est trouvé... Tester le code retour de GetPrivateProfileString()... Détails dans

    http://msdn.microsoft.com

    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
     
    #include <stdio.h>
    #include <windows.h>
     
    int main (int argc, char **argv)
    {
       char resultat[255];
     
       int ret = GetPrivateProfileString ("option", "test", "toto", resultat, sizeof resultat, "data/test.ini");
     
       printf ("ret = %d\n", ret);
       printf ("resultat = '%s'\n", resultat);
     
       return 0;
    }
    Chez moi, le fichier test.ini est dans data/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ret = 16
    resultat = 'coucou c'est moi'

  3. #3
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Sans doute un problème de nom de fichier .ini :
    Citation Envoyé par MSDN
    GetPrivateProfileString
    The GetPrivateProfileString function retrieves a string from the specified section in an initialization file.

    Note This function is provided only for compatibility with 16-bit Windows-based applications. Applications should store initialization information in the registry.

    DWORD GetPrivateProfileString(
    LPCTSTR lpAppName, // section name
    LPCTSTR lpKeyName, // key name
    LPCTSTR lpDefault, // default string
    LPTSTR lpReturnedString, // destination buffer
    DWORD nSize, // size of destination buffer
    LPCTSTR lpFileName // initialization file name
    );
    Parameters
    lpAppName
    [in] Pointer to a null-terminated string that specifies the name of the section containing the key name. If this parameter is NULL, the GetPrivateProfileString function copies all section names in the file to the supplied buffer.
    lpKeyName
    [in] Pointer to the null-terminated string specifying the name of the key whose associated string is to be retrieved. If this parameter is NULL, all key names in the section specified by the lpAppName parameter are copied to the buffer specified by the lpReturnedString parameter.
    lpDefault
    [in] Pointer to a null-terminated default string. If the lpKeyName key cannot be found in the initialization file, GetPrivateProfileString copies the default string to the lpReturnedString buffer. This parameter cannot be NULL.
    Avoid specifying a default string with trailing blank characters. The function inserts a null character in the lpReturnedString buffer to strip any trailing blanks.

    Windows 95/98/Me: Although lpDefault is declared as a constant parameter, the system strips any trailing blanks by inserting a null character into the lpDefault string before copying it to the lpReturnedString buffer.

    Windows NT/2000 or later: The system does not modify the lpDefault string. This means that if the default string contains trailing blanks, the lpReturnedString and lpDefault strings will not match when compared using the lstrcmp function.

    lpReturnedString
    [out] Pointer to the buffer that receives the retrieved string.
    nSize
    [in] Specifies the size, in TCHARs, of the buffer pointed to by the lpReturnedString parameter.
    lpFileName
    [in] Pointer to a null-terminated string that specifies the name of the initialization file. If this parameter does not contain a full path to the file, the system searches for the file in the Windows directory.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  4. #4
    Membre éclairé
    Inscrit en
    Juillet 2003
    Messages
    407
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 407
    Par défaut lire un fichier .ini
    bonjour ,
    je cherche à récupérer des information d'un fichier .ini depuis un code c.

    jj'ai essayé le meme 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
    #include <stdio.h>
    //#include <windows.h>
     
    int main (int argc, char **argv)
    {
       char resultat[255];
     
       int ret = GetPrivateProfileString ("option", "test", "toto", resultat, sizeof resultat, "data/test.ini");
     
       printf ("ret = %d\n", ret);
       printf ("resultat = '%s'\n", resultat);
     
       return 0;
    }
    en le compilant je reçois l'erreur suivante :
    undefined reference to `GetPrivateProfileString'
    est ce que je dois ajouter une librairies spéciale ??

  5. #5
    Membre chevronné Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Par défaut
    //#include <windows.h>
    Pourquoi l'as-tu commenté ?

  6. #6
    Membre éclairé
    Inscrit en
    Juillet 2003
    Messages
    407
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 407
    Par défaut
    parceque je suis sous linux (il ne la reconnait pas )

  7. #7
    Membre chevronné Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Par défaut
    Citation Envoyé par peppena
    parceque je suis sous linux (il ne la reconnait pas )
    GetPrivateProfileString est une fonction de l'API Windows, pas portable.

  8. #8
    Membre éclairé
    Inscrit en
    Juillet 2003
    Messages
    407
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 407
    Par défaut
    oh ! quelle mauvaise nouvelle

    donc y a pas moyen de lire un fichier ini depuis un programme C

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 159
    Par défaut
    Passe plutôt le chemin complet du fichier au lieu d'un chemin relatif.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <stdio.h>
    #include <windows.h>
     
    int main (int argc, char **argv)
    {
       char resultat[255];
     
       int ret = GetPrivateProfileString ("option", "test", "toto", resultat, sizeof resultat, "C:/data/test.ini");
     
       printf ("ret = %d\n", ret);
       printf ("resultat = '%s'\n", resultat);
     
       return 0;
    }

Discussions similaires

  1. Sauvegarde des attributs de texte en fichier ini
    Par Raylemon dans le forum Langage
    Réponses: 2
    Dernier message: 06/09/2003, 21h28
  2. Lecture et ecriture fichier .ini
    Par despe dans le forum C
    Réponses: 6
    Dernier message: 23/07/2003, 20h40
  3. Fichiers INI et TlistBox
    Par Philippe01 dans le forum Langage
    Réponses: 3
    Dernier message: 11/06/2003, 15h36
  4. [VB6] Api pour supprimer dans un fichier INI
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 20/02/2003, 08h16
  5. faire un fichier .ini
    Par florent dans le forum C++Builder
    Réponses: 14
    Dernier message: 31/05/2002, 22h06

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