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 :

Écriture dans un fichier

  1. #1
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Février 2011
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 221
    Par défaut Écriture dans un fichier
    bonjour,
    je n'arrive pas à créer, ouvrir et enregistrer des données sur un fichier sur Qt, j'ai utilisé le code ci-dessous mais malheureusement je ne trouve pas le fichier crée, vous pouvez m'aider?
    merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    void ouvrirfichier(char *nom_fichier)
    {
       QFile fichier (nom_fichier);
       if (!fichier.open (QIODevice::WriteOnly))//On ouvre notre fichier en lecture seule et on vérifie l'ouverture
       {
          cout << "fichier ouvert" << endl;
          QTextStream resultat(&fichier); //Création d'un objet QTextStream à partir de notre objet QFile (sauvegarde)
          resultat.setCodec("UTF-8");
       }
       else
       {
           cout << "impossible d'ouvrir le fichier" << endl;
       }
    }

  2. #2
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    Bonjour ghada97 et bienvenu sur le forum

    Pour commencer, attention à ça :
    ça peut être très problématique. Utilise QString pour manipuler les chaînes de caractères.
    D'ailleurs, modifie la ligne en cas d'échec d'ouverture, pour vérifier le nom du fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cout << "impossible d'ouvrir le fichier:" << nom_fichier << endl;
    Pour debuger avec Qt, il est également préférable d'utiliser qDebug() à la place de std::cout (prise en charge par qDebug des formats de Qt)

    Pour ton problème, il est probable que l'exécutable ne trouve pas ton fichier : si tu donnes simplement ton nom de fichier (par exemple "file.txt"), alors le programme écrit le fichier dans son propre répertoire, qui n'est pas le répertoire contenant les sources mais le répertoire de destination de la compilation (en général qui s'appelle "monapplication-build-desktop")

    Bonne continuation

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 72
    Par défaut
    Vous pouvez utiliser ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #include <QFile>
    #include <QTextStream>
    .
    .
    .
    QString data;
    QFile fichier("fichier.xxx");
    if(fichier.open(QIODevice::WriteOnly))
    {
    QTextStream flux(&fichier);
    flux << data;  //ce que vous voulez écrire
    fichier.close();
    }

  4. #4
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Par défaut
    Merci d'utiliser la FAQ Qt.
    voir ci-dessous:
    http://qt.developpez.com/faq/?page=f...e-fichier-text
    Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
    N'hésitez pas à me contacter par MP.

  5. #5
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    Oh le boulet que je suis

    En fait, si je n'ai pas renvoyé vers la FAQ, c'est que le code me semblait correcte et similaire au code donné sur la FAQ. Donc ça n'aurait pas aidé ghada97.

    Je suis un boulet parce que je n'ai pas vu le détail de m... qui fait planter le truc !
    QFile::open() retourne vrai si l'ouverture à réussi. Quand tu écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!fichier.open (QIODevice::WriteOnly))
    tu testes si l'ouverture à échoué.
    Donc ton code doit être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    void ouvrirfichier(char *nom_fichier)
    {
       QFile fichier (nom_fichier);
       if (fichier.open (QIODevice::WriteOnly))
       {
          cout << "fichier ouvert" << endl;
          QTextStream resultat(&fichier);
          resultat.setCodec("UTF-8");
       }
       else
       {
           cout << "impossible d'ouvrir le fichier" << endl;
       }
    }
    PS: Comme indiqué dans le FAQ, il faut aussi ouvrir le fichier en mode texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file.open(QIODevice::WriteOnly | QIODevice::Text)
    Bonne continuation

  6. #6
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Février 2011
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 221
    Par défaut
    merci infiniment pour vos participations
    "gbdivers" c'est vraiment très gentil de votre part car vous m'avez apporter une réponse claire et nette
    cordialement

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/08/2005, 11h57
  2. [PERL] Problème lecture/écriture dans un fichier
    Par LE NEINDRE dans le forum Langage
    Réponses: 4
    Dernier message: 17/08/2005, 13h15
  3. Problème d'écriture dans un fichier xml
    Par vanoou dans le forum C++Builder
    Réponses: 1
    Dernier message: 13/07/2005, 02h28
  4. Passer à la ligne lors de l'écriture dans un fichier
    Par hams dans le forum Assembleur
    Réponses: 4
    Dernier message: 17/04/2005, 19h25
  5. [JUnit] Junit écriture dans un fichier
    Par mikael35 dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 10/08/2004, 13h11

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