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

Qt Discussion :

QSettings (repertoire Windows)


Sujet :

Qt

  1. #1
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 72
    Points : 58
    Points
    58
    Par défaut QSettings (repertoire Windows)
    Bonjour à toute la communauté,

    depuis un certain temps, je rencontre un problème dont je n'ai pas pu trouver des solutions sur les posts d'autres membres du club.
    En effet, je cherche à créer un fichier ".ini" via un QSettings dans le repertoire de Windows.
    Pour cela, je procède comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    QSettings settings("C:/Windows/configDatei.ini", QSettings::IniFormat);
    malheuresement, le fichier n'est pas du tout crée. Si par contre je ne precise pas de chemin absolut, c-a-d

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QSettings settings("configDatei.ini", QSettings::IniFormat);
    alors le fichier est bel et bien crée pourtant je veux que cela se fasse dans le repertoire Windows.

    Y aurait-il peut être une autre facon de procéder ?
    Je vous remercie d'avance.

  2. #2
    Membre averti
    Avatar de Niak74
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    271
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 271
    Points : 333
    Points
    333
    Par défaut
    Je ne développe pas sous Windows mais la question se pose peut-être : as tu les droits d'écriture sur ce dossier système?

    Ne faut-il pas de "\" plutôt que des "/" (avec le caractère d'échappement : "\\")?
    Un clavier Azerty en vaut deux.

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 774
    Points : 969
    Points
    969
    Par défaut
    Salut,

    tu peux déplacer le répertoire courant avec la méthode statique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QDir::setCurrent(QString monChemin);
    Puis tu cree ton fichier, puis tu reviens dans ton repertoire precedent.

    Sinon ta méthode doit être bonne, mais essaie peut être avec des \ au lieu des / .

    G.
    Un problème avec Qt ? Vous trouverez votre réponse ici : http://doc.trolltech.com/4.6/overviews.html
    En français (traduction réalisée par l'équipe Qt de DVP) : http://qt.developpez.com/doc/4.6/vues-d-ensemble/

  4. #4
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 72
    Points : 58
    Points
    58
    Par défaut
    Merci pour vos suggestions.
    dès que j'essaye tout ca ce soir, je vous tiens informé.
    @@@@++++

  5. #5
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 72
    Points : 58
    Points
    58
    Par défaut
    Je viens d'essayer toutes vos propositions, mais aucune ne marche.
    Pour cette raison, j'ai donc décider d'enrégistrer mon fichier d'initialisation dans le repertoire temporaire "temp".
    pour cela je procède ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    QString path = QDir::tempPath() + "/configFile.ini" ;
    QSettings settings(path, QSettings::IniFormat);
    et cela marche très bien. Par contre, si j'effectue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    QSettings settings("C:/Users/Admin/AppData/Local/Temp/configFile.ini", QSettings::IniFormat);
    // le premier paramètre est le chemin du repertoire temporaire sur mon poste de travail
    alors plus rien ne marche. Je ne comprends toujours pas quelle est la cause.

    @@@++++

  6. #6
    Membre averti
    Avatar de Niak74
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    271
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 271
    Points : 333
    Points
    333
    Par défaut
    Tentes ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QSettings settings("C:\\Users\\Admin\\AppData\\Local\\Temp\\configFile.ini", QSettings::IniFormat);
    Je suppose bien entendu que tu es sûr et certain de ton chemin?

    genre si tu créé un fichier toto.txt dans ce repertoire, la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(QFile::exists(C:\\Users\\Admin\\AppData\\Local\\Temp\\toto.txt))
      qDebug() << "OK !";
    te renvoie en console "OK !"
    Un clavier Azerty en vaut deux.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 223
    Points : 193
    Points
    193
    Par défaut
    Bonjour.

    Je crois que si tu n'écris rien dans ce fameux fichier, alors il ne sera pas créé.
    Essai ce que tu avais fait au début, ajoutes y une section et une clé, et regarde ce que ça donne.

    Logiquement, ça devrait être bon.

    Cordialement,
    PKO
    Quand c'est trop, c'est pas bon !

  8. #8
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    tu ne serait pas sous vista, par hazard?
    vista inderdit d'écrire dans ce repertoire il me semble.

  9. #9
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 72
    Points : 58
    Points
    58
    Par défaut
    Salut une fois de plus

    j'ai essayé la methode suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    QSettings settings("C:\\Users\\Admin\\AppData\\Local\\Temp\\configFile.ini", QSettings::IniFormat);
    // Ici suis une partie du code où j'insère des clés dans le fichier ini
    mais cette derniere ne fonctionne pas aussi.
    En passant, je suis bel et bien sur Vista, et je crois que malgré tout, je suis autorisé à créer des fichiers
    dans le repertoire Windows, car je reussie à le faire avec un QFile.

  10. #10
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par dj_the_kid Voir le message
    En passant, je suis bel et bien sur Vista, et je crois que malgré tout, je suis autorisé à créer des fichiers
    dans le repertoire Windows, car je reussie à le faire avec un QFile.
    Tu utilise quel version de Qt?
    Tu est sur du path?

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 223
    Points : 193
    Points
    193
    Par défaut
    Tu nous dis plus haut que la methode suivante fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    QString path = QDir::tempPath() + "/configFile.ini" ;
    QSettings settings(path, QSettings::IniFormat);
    Si tu fais ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    QString path = "C:/Users/Admin/AppData/Local/Temp/configFile.ini"
    QSettings settings(path, QSettings::IniFormat);
    Ca fonctionne ?

    Cordialement,
    PKO
    Quand c'est trop, c'est pas bon !

  12. #12
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 72
    Points : 58
    Points
    58
    Par défaut
    j'ai essayé avec une QString comme tu l'as proposé "Altess". Cela fonctionne maintenant.
    Dommage que je n'ai pas eu cette idée plus tôt. En ce qui conserne le repertoire Windows, je
    pense qu'a travers un QSettings, je n'ai pas les droits d'accès.
    De toutes les facons, je dois me satisfaire avec ce que j'ai déjà sous la main.

    Grand merci à tous pour les contributions

    si ca t'intéresse encore "yan" j'utilise
    - Windows Vista
    - Qt 4.5 (et vsintegration 1.4.3)
    - et je suis sur une partition qui n'est pas celle contenant mon OS

  13. #13
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par dj_the_kid Voir le message
    j'ai essayé avec une QString comme tu l'as proposé "Altess". Cela fonctionne maintenant.

    Bizzare.
    Ca devrais faire la même chose.

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 223
    Points : 193
    Points
    193
    Par défaut
    Heureux d'avoir pu aider, même si je reste tout de même surpris.

    Cordialement,
    PKO
    Quand c'est trop, c'est pas bon !

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

Discussions similaires

  1. Programmation : Lier le repertoire windows avec fichier Excel
    Par infocroco dans le forum Windows XP
    Réponses: 3
    Dernier message: 13/04/2012, 17h33
  2. parcourir des repertoires windows en php et js (opendir)
    Par maladev dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/04/2011, 09h59
  3. interdire acces aux repertoires windows
    Par niro75 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 04/11/2008, 09h58
  4. suppression de repertoire windows
    Par youcef81 dans le forum Windows XP
    Réponses: 3
    Dernier message: 18/08/2006, 18h17
  5. Réponses: 1
    Dernier message: 29/11/2005, 17h06

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