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