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++Builder Discussion :

getprofilestring et c++ builder


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 49
    Par défaut getprofilestring et c++ builder
    salut a tous
    je suis débutant en c++ builder
    je voudrai bien récupérer ma chaine de caractére à partir d'un fichier que j'ai nomé "monfichier.ini" et ou j'ai mis ces lignes:

    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [frensh]
    command1=frensh.bmp
    [english]
    command1=english.bmp

    mais je n'ai pas reussi.
    voilà ce que j'ai fait:
    dans un fichier.h que ja'i inclu j'ai mis:
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
        String GetProfileString(LPCTSTR lpAppName, LPCTSTR lpKeyName, LPCTSTR lpDefault,LPTSTR lpReturnedString,int nSize,LPCTSTR fileName);
    dans mon fichier.cpp j'ai mis le code suivant:
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    //Form1->Hide();
    if (FR->Checked)
      { strSection="frensh";
       //strItem="command1";
       }
    else if (ENG->Checked)
       {strSection="english";
        //Button1->Caption="english";
       }
       char szTest[256];
    strIntItem=GetProfileString(strSection, "command1", "TRUE", szTest, 256);
     if (!strcmp(szTest,"TRUE") )  Button1->Caption=strIntItem; else Button1->Caption=strIntItem;
    }
    probleme:
    quand j'ajoute le nom de mon fichier strIntItem=GetProfileString(strSection, "command1", "TRUE", szTest, 256,"c:/Windows/monfichier.ini"); j'ai une erreur:extra parameter in call to_stdcal getprofilestringA(const char *,const char *,const char *,const char *,unsigned long)


    et si je mets pas le nom de mon fichier il va diractement au fichier"win.in" et il me retourne un chifrre.

    merci pour tout aide

  2. #2
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    Selon l'aide API Win, GetProfileString a ce prototype :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    DWORD GetProfileString(
     
        LPCTSTR lpAppName,	// address of section name 
        LPCTSTR lpKeyName,	// address of key name 
        LPCTSTR lpDefault,	// address of default string 
        LPTSTR lpReturnedString,	// address of destination buffer 
        DWORD nSize 	// size of destination buffer 
       );
    Ca ne ressemble pas trop à ce que tu utilises

    Sinon, regardes du côté de TIniFile pour lire un fichier Ini. C'est extrement simple à utiliser

  3. #3
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 49
    Par défaut getprofilestring
    salut
    selon cette forme de declaration,ou pourai-je mettre le nom de mon fichier
    car je ne veux pas acceder au win.ini de windows
    merci quand même

  4. #4
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Citation Envoyé par aadelfa
    salut
    selon cette forme de declaration,ou pourai-je mettre le nom de mon fichier
    car je ne veux pas acceder au win.ini de windows
    merci quand même
    et surtout pas dans "Win.ini".

    Sauve ton fichier au même dossier que ton application ".exe" par exemple.

  5. #5
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Les balises "code" et "/code" elles existe pour donner de la forme à ton code dans ce forum, il faut se servir.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    [frensh]
    command1=frensh.bmp
    [english]
    command1=english.bmp
    mais je n'ai pas reussi.
    voilà ce que j'ai fait:
    dans un fichier.h que ja'i inclu j'ai mis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        String GetProfileString(LPCTSTR lpAppName, LPCTSTR lpKeyName, LPCTSTR lpDefault,LPTSTR lpReturnedString,int nSize,LPCTSTR fileName);
    dans mon fichier.cpp j'ai mis le code suivant:
    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
     
     void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    //Form1->Hide();
    if (FR->Checked)
      { strSection="frensh";
       //strItem="command1";
       }
    else if (ENG->Checked)
       {strSection="english";
        //Button1->Caption="english";
       }
       char szTest[256];
    strIntItem=GetProfileString(strSection, "command1", "TRUE", szTest, 256);
     if (!strcmp(szTest,"TRUE") )  Button1->Caption=strIntItem; else Button1->Caption=strIntItem;
    }
    Pour ton problème, pourquoi ne pas utiliser TIniReader et TIniWriter

  6. #6
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 49
    Par défaut getprofilestring
    salut
    je nesais pas comment utiliser TIniReader et TIniWriter
    merci pour ton aide

  7. #7
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    Pour lire une donnée dans un fichier Ini
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    TIniFile* Ini = new TIniFile(FichierIni);//paramètre = chemin du fichier Ini ciblé
    AnsiString Valeur = Ini->ReadString("Section","Cle","");//paramètres = Section/Clé/Valeur par défaut
    delete Ini;
    Pour écrire dans un fichier Ini
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    TIniFile* Ini = new TIniFile(FichierIni);//paramètre = chemin du fichier Ini ciblé
    Ini->ReadString("Section","Cle",Valeur);//paramètres = Section/Clé/Valeur à écrire
    delete Ini;
    Si tu ne précises pas le chemin complet du fichier ini, TIniFile va chercher le fichier ini dans le dossier Windows.

    Infos fichier Ini dans la FAQ

  8. #8
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 49
    Par défaut tinifile
    salut
    je vais essayer
    merci à tous pour votre aide

  9. #9
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 49
    Par défaut tinifile
    salut
    désolé pour le dérangement,mais quand j'écris ce code:
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    TIniFile* Ini = new TIniFile("c:/Windows/monfichier.ini");
    j'ai une erreur:
    -call to undefined symbole Tinifile
    -undefined symbole Ini
    veuillez m'éxcuser mais je suis débutant en c++b
    et merci pour tout

  10. #10
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    Un petit tour dans l'aide t'aurait indiqué que TIniFile fait partie de l'unité IniFiles.

    Tu dois donc faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #include <IniFiles.hpp>
    Pour que cela marche...

    De plus, sous BCB, il faut doubler les \ dans les chemins pour qu'ils soient valides (\ servant à préfixer les caractères de controle dans les chaines)...

  11. #11
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Citation Envoyé par aadelfa
    salut
    je nesais pas comment utiliser TIniReader et TIniWriter
    merci pour ton aide
    Ben dans BCB, dans une unité quelconque, tu ecris TIniFile et tu fais

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

Discussions similaires

  1. 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
  2. Outils, cours et NOUVEAUX tutoriels pour Borland C++Builder
    Par hiko-seijuro dans le forum C++Builder
    Réponses: 10
    Dernier message: 12/03/2006, 22h33
  3. c++ builder JavaDoc :)
    Par JEG dans le forum C++Builder
    Réponses: 8
    Dernier message: 08/06/2002, 13h31
  4. Documentation DirectX dans C++Builder 3
    Par srvremi dans le forum DirectX
    Réponses: 1
    Dernier message: 26/04/2002, 09h59
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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