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 Creator Discussion :

Ouvrir un fichier


Sujet :

Qt Creator

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 182
    Points : 61
    Points
    61
    Par défaut Ouvrir un fichier
    Bonjour à toutes et tous .

    Je ..poursuis.. mon apprentissage du C++ et de Qt creator .

    J'avais découvert un tutoriel sur le net . Je ne le retrouve pas ..bon .

    J'ai tenté d'adapter un morceau de code à ma sauce ...sans grand succès .Ce code doit ouvrir un fichier text créé et présent dans mon dossier projet.

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    #include <QApplication>
    #include <QTextEdit>     //Afficher le contenu du fichier
    #include <QFile>         //Pour utiliser le fichier
    #include <QString>       //Stockage du contenu du fichier
    #include <QTextStream>   //Flux sortant du fichier
     
    #include <IOStream>
    int main(int argc , char **argv)
    {
        QApplication a(argc , argv);
        QTextEdit zoneTexte;
        zoneTexte.setGeometry(100,100,400,200);
        zoneTexte.setReadOnly(true);
     
        QString fileName = "poeme.txt";
     
        QFile fichier(fileName);
     
       if(fichier.open( QIODevice::ReadOnly | QIODevice::Text))
        {
               fileName = fichier.readAll();
                fichier.close();
     
        zoneTexte.setText(fileName);
        zoneTexte.show();
        return a.exec();
    	}
     
    }
    Il ouvre bien un dossier mais celui créé dans un autre projet ???
    Je tourne et retourne le problème en vain .

    Merci pour votre aide .

    Cordialement .

    PS: Soyez indulgent .

  2. #2
    Membre émérite
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Points : 2 834
    Points
    2 834
    Par défaut
    Première remarque ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    zoneTexte.show();
    return a.exec();
    ne devrait pas être dans ton bloc if, car il ne dépend pas de l'ouverture de ton fichier.

    Ensuite, tu devrais afficher un message d'erreur dans le cas où tu n'arrives pas à ouvrir ton fichier, pour ça le plus simple est d'utiliser qDebug() qui fonctionne comme cout en C++.

    Et enfin pour ton problème, c'est souvent risqué d'utiliser un chemin de fichier relatif. Car l'emplacement dans lequel ton programme va le chercher peut varier. Normalement il cherche le fichier dans le dossier d'où est lancé ton programme. Comme tu utilises QtCreator, ça doit être un sous dossier créé automatiquement dans le dossier de ton projet.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 182
    Points : 61
    Points
    61
    Par défaut Merci
    Bonsoir à toutes et tous .

    Oui j'ai rectifié mon code . Mais pas de changement .

    Comment retrouver la trace de ce fichier .
    Entre-temps j'ai éliminé le projet ou figurais "poeme.txt" . Corbeille et corbeille vidée .(Il est toujours ouvert par ce petit morceau de code .)?????

    Je ne parviens pas à comprendre.

    Cordialement.

  4. #4
    Membre émérite
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Points : 2 834
    Points
    2 834
    Par défaut
    Tu es sûr que ton fichier poeme.txt n'est pas copié quelque part dans les dossiers de ton projet actuel ? Tu es sûr que le fichier est ouvert, tu affiches son contenu ?

    Si tu veux vraiment trouver quel fichier ouvre ton programme, tu peux utiliser la classe QFileInfo qui a une fonction absoluteFilePath, comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #include <QFileInfo>
    ....
     
    // après avoir créé ton objet fichier
    infoFichier = QFileInfo(fichier);
    qDebug() << infoFichier.absoluteFilePath();

  5. #5
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 593
    Points
    188 593
    Par défaut
    Citation Envoyé par YoniBlond Voir le message
    Si tu veux vraiment trouver quel fichier ouvre ton programme, tu peux utiliser la classe QFileInfo qui a une fonction absoluteFilePath
    Plus d'exemples dans la FAQ : http://qt.developpez.com/faq/?page=f...os-emplacement
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 182
    Points : 61
    Points
    61
    Par défaut Merci ...
    Bonjour à toutes et tous .

    Merci pour vos réponses .

    En fait , mon code fonctionne , mais pas de la façon que je pensais .

    En cliquant sur la flèche verte du "débugage" cela me créé un nouveau dossier avec un fichier Projet.pro et un fichier poeme.txt est créé avec .Je pensais que le dossier poeme.txt était créé de façon 'indépendante' sur le bureau , et je recherche depuis plusieurs jours le moyen d'ouvrir ce dossier placé sur le bureau .

    Est-il possible d'ouvrir ce fichier (placé sur le bureau,)dans une nouvelle fenêtre ??

    Cordialement.

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/04/2004, 13h55
  2. ouvrir un fichier
    Par sofiane61 dans le forum MFC
    Réponses: 3
    Dernier message: 10/01/2004, 23h04
  3. [java][Oracle]Ouvrir un fichier(blob) avec le browser
    Par marsup54 dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 11/09/2003, 13h35
  4. [VBA-E] ouvrir un fichier .xls sans executer les macro
    Par lae_t2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/01/2003, 17h07
  5. [Kylix] Ouvrir un fichier en étant dans KYLIX
    Par Jackepsi dans le forum EDI
    Réponses: 2
    Dernier message: 05/11/2002, 15h59

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