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 :

Ouvrir un fichier texte


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Par défaut Ouvrir un fichier texte
    Bonsoir ,

    Je suis actuellement entrain d'essayer de coder un updater pour mon programme et j'aurais voulu faire un fichier texte qui se créer automatiquement au fur et à mesure que l'on avance dans le programme.

    Donc je pensais déclaré mon fichier texte dans le constructeur et ensuite de rajouter une petite ligne à chaque fois que je veux rajouter une infos dans le fichier texte du rapport.

    Mais déjà la je sais pas comment faire pour éviter de recopier toujours le même code...

    Ensuite je voudrais savoir si c'est possible de lancer toujours avec Qt le fichier texte avec le bloc note ou autre programme par défaut de la machine ?

    Merci et bonne soirée !

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 129
    Billets dans le blog
    149
    Par défaut
    Bonjour,

    Il semblerait que vous voulez faire, ce que l'on appelle couramment: un log.

    Dans le principe général, et pour une facilité d'utilisation, nous allons faire une classe qui utilise le design pattern: Singleton

    Cette classe ( et son instance ) pourra être accessible de n'importe quel partie du programme.
    Cette classe, dans le constructeur ( voir les particularités du Singleton ), devra ouvrir un QFile ( c'est la classe qui gère les fichiers ) et puis un QTextStream ( pour plus de simplicité ). Dans le destructeur, on ferme le fichier.
    Lors des appel cela va beaucoup ressembler à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Log::getInstance().getFile() << "The logger is here" << std::endl;
    Bien sur, il faudra appeler ( construire ) le singleton au debut du programme ( pas trop obligatoire, mais bon pour une bonne gestion c'est bien ), et le détruire à la fin du programme ( ça c'est super important )
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre éprouvé
    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 : 39
    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
    Par défaut
    Et pour ouvrir un fichier avec l'application par défaut de l'OS, utilise cette fonction : http://qt.developpez.com/doc/latest/...s.html#openurl

    Tu peux ouvrir un chemin local (fichier ou dossier) aussi bien qu'un chemin web (qui s'ouvrira avec le navigateur).

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Par défaut
    Je vais regarder du côté de l'instance j'ai jamais essayé d'en faire une...

    Par contre pour ouvrir le fichier log.txt qui sera créer avec l'éditeur de texte par défaut donc soit notepad, ou autre sur linux etc j'ai vraiment pas compris comment tu comptais pouvoir le faire avec openUrl ?

    Merci pour vos deux réponses !

  5. #5
    Membre éprouvé
    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 : 39
    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
    Par défaut
    La doc me parait pourtant très explicite tu as juste à appeler la fonction avec le chemin de ton fichier et il sera ouvert par l'application par défaut (selon son extension donc). Si ton fichier est dans le même répertoire que ton exécutable, tu dois pouvoir mettre uniquement son nom.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // Ouvre le fichier en dehors de ton programme
    if(!QDesktopServices::openUrl(QUrl("log.txt")))
        cout << "Erreur d'ouverture du fichier" << endl;
    Cela dit il est peut être plus prudent de mettre le chemin complet du fichier, car je crois que si on lance ton programme par un raccourci, il cherchera le fichier à un autre endroit.

    Pour faire ça, tu peux :
    1) récupérer le chemin du dossier qui contient ton exécutable
    2) ajouter le nom du fichier log à ce chemin
    3) vérifier que le fichier existe, sinon le créer
    4) l'ouvrir dans un éditeur de texte

    Quelques liens :
    http://qt.developpez.com/doc/latest/...icationdirpath
    http://qt.developpez.com/doc/latest/qfile.html (http://qt.developpez.com/doc/latest/qfile.html#exists)

  6. #6
    Membre confirmé
    Avatar de katanaenmousse
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 220
    Par défaut
    Salut,

    en gros, tu veux ajouter une ligne à un fichier texte a chaque fois que tu franchis une étape dans ton code. C'est bien ça, n'est ce pas?
    Peux tu préciser une chose importante :
    Ton fichier doit il etre completé à chaque nouveau lancement du programme ou bien son contenu doit il être effacé à chaque nouveau lancement du programme?
    Si le fichier ne doit pas être effacé, il faudra penser à le lire au début de ton programme afin de pouvoir le completer.

    A bientôt, je te répondrai dès que tu auras éclairé ce point important.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Par défaut
    Je vais tester tout de suite pour le bloc note

    katanaenmousse, oui voilà je compte faire à chaque fasse importante du programme par exemple les fichiers télécharger, le dossier temporaire, fichiers supprimer etc...

    Mais je pense que le fichier rapport.txt sera crée et que le fichier sera disponible jusqu'à la prochaine création d'un nouveau fichier rapport.txt

    Donc à la première ligne que j'écris je vais supprimer le fichier déjà existant s'il existe et je crée mon nouveau fichier et ainsi de suite...

    Comme ça j'ai toujours qu'un seul fichier rapport.txt et qui est dispo pendant quelque temps si besoin et.

    Après je sais pas mais si je le rempli a chaque fois à la suite à la fin le fichier pourrais être énorme...
    Si je crée à chaque fois un nouveau fichier j'aurais plein de fichier rapport et c'est pas forcement utilise donc je pense que c'est la meilleur solution de le supprimer à chaque fois que je créer un fichier log.

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

Discussions similaires

  1. Ouvrir un fichier texte dans WordPad
    Par Commodore dans le forum Langage
    Réponses: 5
    Dernier message: 15/06/2006, 11h32
  2. [VB6] Ouvrir un fichier text qui ce trouve sur internet!
    Par passicon dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 03/04/2006, 13h41
  3. Ouvrir un fichier texte
    Par Meno14 dans le forum Access
    Réponses: 5
    Dernier message: 28/03/2006, 17h37
  4. [C++] Menu d'aide: ouvrir un fichier texte
    Par debutanteVB.NET dans le forum C++
    Réponses: 11
    Dernier message: 15/12/2005, 23h12
  5. Ouvrir un fichier texte en lecture ET écriture
    Par Steph12 dans le forum C++
    Réponses: 12
    Dernier message: 17/06/2005, 08h08

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