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 :

Création et lecture de fichier ini


Sujet :

C++Builder

  1. #1
    Membre confirmé Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    Octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : Octobre 2003
    Messages : 239
    Par défaut Création et lecture de fichier ini
    Bonjour à vous,

    Je sèche un peu sur mon fichier ini malgré la faq

    Voici ce que je fais pour la création de mon fichier ini :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void __fastcall TForm1::ButtonSaveParaClick(TObject *Sender)
    {
        TIniFile *f;
        try
        {
            f = new TIniFile("C:\\Documents and Settings\\MOI\\Bureau\\Test\\test.ini");
            f->WriteString("Chemin destination", "Repertoire destination", DirectoryListBox2->Directory);
            f->WriteString("Chemin source", "Repertoire source", DriveComboBox1->Drive);
        }
        __finally
        {
         delete f;
        }
    Là tout fonctionne très bien, même s'il faudrait que je trouve à mettre le moyen que le fichier .ini se créer automataiquement dans le dossier de l'application et plus de manière statique comme je fais, je pense qu'il faut passer par GetCurrentDir mais je n'arrive pas à le mettre en place.

    Enfin mon plus gros souci, c'est à la lecture du fichier ini, car biensur au lancement de l'application, j'aimerais bien le lire et faire l'opération inverse de la crétion du fichier.

    Je fais donc ceci pour la lecture, toujours grâce à la FAQ :
    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
        TIniFile *f;
        AnsiString s,t;
     
        try
        {
           f = new TIniFile("C:\\Documents and Settings\\MOI\\Bureau\\Test\\test.ini");
           s = f->ReadString("Chemin destination", "Repertoire destination", "");
           t = f->ReadString("Chemin source", "Repertoire source", "");
        }
        __finally
        {
           delete f;
        }
        DirectoryListBox2->Directory = s;
        DriveComboBox1->Drive = t;
    Sauf que là j'ai droit à une belle erreur de compilateur :
    [C++ Erreur] Unit1.cpp(34): E2034 Impossible de convertir 'AnsiString' en 'char'
    pour ma dernière ligne, ce qui est en fait normal car en effet j'ai qu'un caractère de stocker dans l'ini donc je ne vois pas cmment contourner cela.

    Et je dois dire que cela fait bientôt 2 ans que je n'avais pas codé et je dois dire que l'on perd beaucoup à ne pas pratiquer

    Merci par avance de votre aide

  2. #2
    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
    Bonjour,

    Pour ce qui est du chemin d'accès a l'appli, ca devrait être du côté de la FAQ: ici

    Pour la propriété "Drive", j'aurais fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    AnsiString S;
    S = "C"; //a remplacer par ton ReadString
    char c = S.operator [](1)  ;
    DriveComboBox1->Drive = c;
    par ex, mais ya peut être mieux / plus "propre".

    @+

  3. #3
    Membre confirmé Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    Octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : Octobre 2003
    Messages : 239
    Par défaut
    Bonsoir pour la propriété Drive cela fonctionne très bien, merci beaucoup

    Par contre même avec la FAQ j'ai du mal avec le répertoire de l'application, pourtant la FAQ est très courte sur ce point.

    Mon nouveau code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f = new TIniFile("ExtractFilePath(Application->Project1)test.ini");
    Mais j'ai une erreur me disant que le chemin n'existe pas.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 190
    Par défaut
    Bonsoir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    f = new TIniFile(ExtractFilePath(Application->ExeName)+"test.ini");
    ExtractFilePath est une fonction, donc tu dois l'utiliser comme telle. Si tu la mets entre des guillemets, elle sera interprétée comme une chaine de caractère.

    Application->ExeName récupère le chemin complet de ton application courante.

    ExtractFilePath en extrait le path.

    Et enfin +"test.ini", concatène le path avec le nom de ton fichier ini.

  5. #5
    Membre confirmé Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    Octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : Octobre 2003
    Messages : 239
    Par défaut
    Bonsoir et merci beaucoup, là tout fonctionne correctement

    J'avais essayé aussi avec le +, mais il est vrai qu'il ne me serait jamais venu à l'idée de supprimer les "

    Merci de l'éclairicissement sur la fonction ...

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

Discussions similaires

  1. Lecture du fichier ini 1 ligne pour chaque Textbox
    Par kazylax dans le forum VB.NET
    Réponses: 19
    Dernier message: 13/03/2008, 03h59
  2. Problème de lecture sur fichier ini.
    Par braoru dans le forum Delphi
    Réponses: 2
    Dernier message: 28/07/2006, 15h34
  3. Lecture de fichier .ini
    Par poussinphp dans le forum C++
    Réponses: 4
    Dernier message: 09/07/2006, 17h16
  4. problème dans boucle for de lecture de fichier ini
    Par chourmo dans le forum Delphi
    Réponses: 3
    Dernier message: 06/07/2006, 09h31
  5. Lecture des fichiers INI
    Par jamfr73 dans le forum Linux
    Réponses: 2
    Dernier message: 13/04/2006, 01h03

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