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 :

faire un fichier .ini [FAQ]


Sujet :

C++Builder

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 53
    Points : 41
    Points
    41
    Par défaut faire un fichier .ini
    est ce ke kk un pourrait me filer un bout de code où l'on lit ds un fichier (ini ici), ou les donnees serait du genre

    port=COM1
    vitesse=9600
    ect...

    merci c tres urgent

  2. #2
    Membre à l'essai
    Inscrit en
    Mars 2002
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        TIniFile *pIniFile ;
        pIniFile = new TFileConfig( "Chemin du fichier") ;
        pIniFile->ReadString("COM", "Vitesse", 19200) ;
        delete pIniFile ;

    Regarde l'aide TIniFile est est tres bien faite

    Regarde aussi l'aide TRegIniFile (TRegIniFile permet de lire et d'erire dans le registre)



  3. #3
    Membre confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 137
    Points : 621
    Points
    621
    Par défaut
    ou bien utilise TRegIniFile qui fonctionne pareil, mais utilise la base de registres ce qui est plus conforme aux spécifications de Win 32

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Points : 109
    Points
    109
    Par défaut
    Je pense qu'il faut lire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TIniFile *pIniFile ; 
        pIniFile = new TIniFile( "Chemin du fichier") ;
    et non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TIniFile *pIniFile ; 
        pIniFile = new TFileConfig( "Chemin du fichier") ;

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Points : 109
    Points
    109
    Par défaut
    au passage, il faut inclure le IniFiles.hpp ... mais ça c'est un détail

  6. #6
    Membre à l'essai
    Inscrit en
    Mars 2002
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Je pense qu'il faut lire :

    Code:
    TIniFile *pIniFile ;
    pIniFile = new TIniFile( "Chemin du fichier") ;



    et non
    Code:
    TIniFile *pIniFile ;
    pIniFile = new TFileConfig( "Chemin du fichier") ;

    Tu as raison ChMerlier j'avais pas fait gaffe au code que j'ai repris.

    Désolé

  7. #7
    Membre confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 137
    Points : 621
    Points
    621
    Par défaut
    pour TRegIniFile c'est pas plus compliqué :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TRegIniFile *pRegIniFile ; 
    pRegIniFile = new TRegIniFile("nom de l'application (unique de préférence !)") ;

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 80
    Points : 84
    Points
    84
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    TIniFile *pIniFile ; 
        pIniFile = new TFileConfig( "Chemin du fichier") ; 
        pIniFile->ReadString("COM", "Vitesse", 19200) ; 
        delete pIniFile ;
    dites moi si j'ai raison:

    dans le fichier ini
    [COM]
    vitesse=19200

  9. #9
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Points : 109
    Points
    109
    Par défaut
    Bonjour,

    Ton code ne fait rien

    Si tu veux lire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    TIniFile *pIniFile ; 
    int iiVitesse;
        pIniFile = new TIniFile( "Chemin du fichier") ; 
        iiVitesse = pIniFile->ReadInteger("COM", "Vitesse", 19200) ; // 19200 etant ici la valeur par défaut 
        delete pIniFile ;
    Si tu veux ecrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    TIniFile *pIniFile ; 
    int iiVitesse;
        pIniFile = new TIniFile( "Chemin du fichier") ; 
        pIniFile->WriteInteger("COM", "Vitesse", VariableVitesse) ; // VariableVitesse etant ici la valeur dans la code 
        delete pIniFile ;

    Si tu veux tout en string, il faudra ensuite convertir à la lecture et à l'ecriture. La fonction menbre sera alors ReadString/WriteString.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 80
    Points : 84
    Points
    84
    Par défaut
    voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
       TIniFile *pIniFile ;
       pIniFile = new TIniFile( "config.ini") ;
       iniport = pIniFile->ReadString("Server", "Port", "1040") ;
       iniport = pIniFile->ReadString("Client", "Port", "1040") ;
       inihost = pIniFile->ReadString("Client", "Host", "127.1.1.1") ;
       delete pIniFile ;
       port->Text = iniport;
       portc->Text = iniport;
       ad->Text = inihost;
    mon fichier ini:
    [server]
    Port=1400

    [Client]
    Port=1400
    Host=127.0.0.1


    Mais il ne me lis les données je comprends pas
    pourtant le compilateur n'a pas de prob

  11. #11
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Points : 109
    Points
    109
    Par défaut
    Bonjour,

    Voila mon idées :

    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
     
    TIniFile *pIniFile ; 
       pIniFile = new TIniFile( "config.ini") ; 
     
       int iiIniPortServeur;
       int iiIniPortClient;
       AnsiString asIpClient;
     
       iiIniPortServeur = pIniFile->ReadInteger("Server", "Port", 1040) ; 
       iiIniPortClient = pIniFile->ReadInteger("Client", "Port", 1040) ; 
       asIpClient = pIniFile->ReadString("Client", "Host", "127.1.1.1") ; 
     
       delete pIniFile ; 
     
       port->Text = IntToStr(iiIniPortServeur); 
       portc->Text = IntToStr(iiIniPortClient);
       ad->Text = asIpClient;
    Dans ton exemple, tu lis iniport dans la même variable, donc quand tu l'ecris tu ecris la même chose.
    Maintenant, il faut faire attention c'est que la classe TIniFile cherche le fichier dans c:\windows quand tu ne spécifies pas de répertoire.
    Par conséquent, si tu veux lire les datas dans le repertoire de ton applis, il faut spécifier le nom du chemin complet ... sinon tu auras tout le temps les valeurs par défaut.

    soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    pIniFile = new TIniFile( "c:\\mon_repertoire_appli\\config.ini") ;
    voila ...

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 80
    Points : 84
    Points
    84
    Par défaut
    ca y est j'ai trouvé l'erreur, en fait c pas une erreur et justement je comprends pas pkoi sa marche :


    avant j'avais:
    pIniFile = new TIniFile( "config.ini") ;

    et maintenant j'ai mis:
    pIniFile = new TIniFile( ChangeFileExt(Application->ExeName,".ini")) ;

    pkoi est ce que maintenant sa marche et avant pas

  13. #13
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Points : 109
    Points
    109
    Par défaut
    Bonjour,

    C'est simplement parce que Application->ExeName contient le nom et le répertoire de ton application.
    Cf ma derniere suggestion.

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 80
    Points : 84
    Points
    84
    Par défaut
    super je te remercie c pke je mettais pas deux backslash dans l'adresse

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 53
    Points : 41
    Points
    41
    Par défaut
    merci a tous c génial des réponses comme ca

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

Discussions similaires

  1. Fichier ini, comment faire?
    Par icekev dans le forum VB.NET
    Réponses: 24
    Dernier message: 09/02/2010, 23h46
  2. Sauvegarde des attributs de texte en fichier ini
    Par Raylemon dans le forum Langage
    Réponses: 2
    Dernier message: 06/09/2003, 22h28
  3. Lecture et ecriture fichier .ini
    Par despe dans le forum C
    Réponses: 6
    Dernier message: 23/07/2003, 21h40
  4. Fichiers INI et TlistBox
    Par Philippe01 dans le forum Langage
    Réponses: 3
    Dernier message: 11/06/2003, 16h36
  5. [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, 09h16

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