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

Discussion :

Utilisation de QSettings

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    532
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2011
    Messages : 532
    Par défaut Utilisation de QSettings
    Bonjour a toutes et tous,
    J'ai un petit souci, j'essaie de lire des fichiers .ini en c++ avec un programme Qten suivant une documentation de developpez.com ( http://qt.developpez.com/faq/?page=m...core-qsettings )

    J'arrive à lire mes valeurs mis dans le fichier .ini avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    QSettings settings("Developpez.ini", QSettings::IniFormat);
     
    QString membre1 = settings.value("EquipeQt/membre1","Developpez").toString();
    Mais je voudrais apporter une modification sauf que je n'y arrive pas. Actuellement, le fichier .ini doit être dans mon répertoire de build (lorsque je compile mon projet) pour être lu. Or je voudrais que mon fichier .ini soit dans un tout autre répertoire. J'ai essayé de renseigné le chemin complet du nouveau répertoire avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QSettings settings("C:\Program Files\wamp\www\utilisation_fichiers_ini\Developpez.ini", QSettings::IniFormat);
    Mais cela ne marche pas, pouvez-vous m'aider s'il vous plait

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Le caractère \ doit être échappé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QSettings settings("C:\\Program Files\\wamp\\www\\utilisation_fichiers_ini\\Developpez.ini", QSettings::IniFormat);

  3. #3
    Membre éclairé

    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    532
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2011
    Messages : 532
    Par défaut
    Je te remercie pour la réponse, cela fonctionne parfaitement

  4. #4
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Heu, je ne sais pas si c'est d'application, mais tu as peut être largement intérêt à éviter les noms de dossiers codés en dur, surtout s'ils sont spécifiques à un système d'exploitation donné.

    Je m'explique :
    1- lorsque je suis sous windows, j'installe rarement mes application dans le dossier par défaut ( C:\program files) ... Si le nom est codé en dur, le fichier ne sera jamais trouvé.

    2- le dossier c:\program files est régi par des règles strictes en ce qui concerne les modifications apportées aux fichiers qu'il contient : Typiquement, il faut les droits d'administrateurs pour pouvoir écrire dans ce dossier, ce qui implique que l'application qui tente de le faire devra être lancée en tant qu'administrateur.

    Cela peut poser de sérieux problèmes si l'utilisateur veut sauvegarder sa configuration perso

    Typiquement, le meilleur dossier pour placer ton fichier ini (et permettre à tout le monde de sauvegarder sa config) semble trainer du coté de c:\ProgramData ou de c:\Documents and Settings\<nom de l'utilisateur>\Application Data. Voir d'autres

    3- Enfin, les noms de dossier qui prennent la forme de c:\... sont typiquement des noms de dossiers "windowsiens" et sont totalement inutilisables sous linux.

    Tu ne veux peut être pas prévoir la compatibilité avec linux, mais, sait-on jamais : tu y viendras peut etre, et il serait moche de ne pas l'avoir prévu directement.

    Ce serait d'autant plus moche que les classes QFileInfo et similaires tes permettent de prévoir directement la compatibilité.

    Bien sur, comme je l'ai dit en commençant, ces remarques ne sont peut être pas forcément applicables à ton cas particulier, mais il me semblait important d'attirer ton attention sur le sujet
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  5. #5
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 736
    Par défaut
    Il est à noter que QSettings permet de faire abstraction du système d'exploitation quand on le couple à QApplication.
    Il va mettre automatiquement les fichiers de configuration où il faut, dans le dossier personnel ou dans la base de registre de Windows.

    Voir la doc de QSettings et de QCoreApplication.

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

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  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