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 :

Probleme avec une structure


Sujet :

C++Builder

  1. #1
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut Probleme avec une structure
    Salut,

    Je dois initialiser un entier dans un structure en allant chercher sa valeur dans un fichier .ini voilà mon code :

    Je voudrais mettre toto à sa valeur qui est dans Param.ini ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TIniFile* Init = new TIniFile(ExtractFilePath(Application->ExeName)+"Param.ini");
    struct.toto = Init->ReadInteger("Param1","toto",0);
    Aucune erreur à la compilation ni lors du déroulement du programme mais struct.toto est toujours égal à 0... alors que dans le fichier Param.ini sa valeur n'est pas à zéro...

    Si quelqu'un à une idée...

  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
    Fais ça en 2 fois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    TIniFile* Init = new TIniFile(ExtractFilePath(Application->ExeName)+"Param.ini");
    int test = Init->ReadInteger("Param1","toto",0);
    struct.toto = test;
    et vérifie en mode debug si ta valeur test correspond bien à la valeur de ton fichier Ini...

    Nb: on pourrait avoir la tronche de ta structure??

  3. #3
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    Tu as raison en le faisant en 2 temps test est bien à la bonne valeur...

    C'est quand je fais :

    que struct.toto ne prend pas la bonne valeur... alors je ne sais plus...

    Sinon ma structure est simple pour cet exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Struct
    {
    in toto;
    } struct;

  4. #4
    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
    Essayes ta structure comme ceci pour voir si cela a une influence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    typedef struct
    {
     int toto;
    }test_struct;
    ton code deviendra
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    TIniFile* Init = new TIniFile(ExtractFilePath(Application->ExeName)+"Param.ini");
    int test = Init->ReadInteger("Param1","toto",0);
    test_struct.toto = test;

  5. #5
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    Le fait d'avoir rajouté typedef, il ne compile plus et me dis comme erreur :

    "improper use of typedef"

  6. #6
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    Par contre il faut peut-etre que je passe la structure en parametre de la fonction, mais c'est bizarre car elle était reconnue sans y etre...

  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
    Citation Envoyé par Fred2209
    Le fait d'avoir rajouté typedef, il ne compile plus et me dis comme erreur :

    "improper use of typedef"
    Je ne comprends pas pourquoi tu as cette erreur vue que j'utilise une structure de ce type et cela fonctionne...

    Ma structure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    typedef struct
    {
     AnsiString Host,//hote
                Pass,//password
                User;//utilisateur
    }InfoFTP;//structure info ftp
    Citation Envoyé par Fred2209
    Par contre il faut peut-etre que je passe la structure en parametre de la fonction, mais c'est bizarre car elle était reconnue sans y etre...
    Si ta structure est déclarée dans un fichier source ou fichier header connu par le fichier source contenant ton appel, c'est tout à fait normal.

  8. #8
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    Tu as raison le fichier.h dans lequel est ma structure, est déclaré...

    Par contre du coup je ne comprend vraiment pas car la procédure est bonne...

    Et ça ne marche pas...

  9. #9
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    Pour faire un test j'ai inséré :

    et même ça il ne me le prend pas... toto reste à 0...

  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
    Changes le nom de ta structure. Appelles là autrement que struct pour éviter un conflit avec la définition des structures.

  11. #11
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    Toujours la même chose...

  12. #12
    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
    Citation Envoyé par Fred2209
    Toujours la même chose...
    Là, je suis perdu et je ne vois pas comment t'aider...

  13. #13
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    Je te comprend et je te remercie quand même pour le temps passé...

  14. #14
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Bonsoir,
    Juste pour être bien sur de tout comprendre, la struct est bien déclarée en amont de la déclaration de la fiche et une 'référence' a cet objet est bien déclarée dans cette fiche ?
    J'illustre :
    .dans le .h:
    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
     
    typedef struct
    {
    	int toto;
    }TMyStruct;
    typedef TMyStruct *mStruct;
    //---------------------------------------------------------------------------
    class TForm2 : public TForm
    {
    __published:	// Composants gérés par l'EDI
    	TButton *Button2;
    	void __fastcall FormCreate(TObject *Sender);
    	void __fastcall Button2Click(TObject *Sender);
    private:	// Déclarations de l'utilisateur
    mStruct aStruct;
    public:		// Déclarations de l'utilisateur
    	__fastcall TForm2(TComponent* Owner);
    };
    .dans le cpp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void __fastcall TForm2::Button2Click(TObject *Sender)
    {
    aStruct = new TMyStruct;
    aStruct->toto = // ETC, ETC ...
    }
    En fonctionnant ainsi, je n'ai pas de soucis avec mes p'tites struct; mais peut être ton cas est il différent de ce que je pense ...
    En espérant t'aider en tout cas.
    @ +

  15. #15
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Salut,

    Au lieu d'utiliser des structures pourquoi tu n'utilises pas des classes? Après tout on est dans C++ Builder

  16. #16
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    C'est tout à fait ça...

    Je n'avais pas déclarer la structure à l'intérieur de la classe...

    Merci.. c'est super...

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

Discussions similaires

  1. Probleme avec une structure sequentielle empilée
    Par kobalt02 dans le forum LabVIEW
    Réponses: 4
    Dernier message: 17/06/2009, 13h27
  2. Probleme avec une structure
    Par bouba69 dans le forum Débuter
    Réponses: 12
    Dernier message: 03/02/2008, 21h46
  3. Probleme avec une structure
    Par coco.cohen dans le forum C
    Réponses: 3
    Dernier message: 26/11/2007, 20h41
  4. probleme avec une structure.
    Par apesle dans le forum C
    Réponses: 5
    Dernier message: 24/12/2006, 15h18
  5. probleme avec une "structure en arbre"
    Par kamouminator dans le forum C
    Réponses: 1
    Dernier message: 07/11/2006, 22h21

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