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 :

Ouverture de fichier

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien conception industrielle
    Inscrit en
    Avril 2020
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Technicien conception industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2020
    Messages : 18
    Par défaut Ouverture de fichier
    Bonsoir

    Je souhaite ouvrir un fichier et lancer des calculs avec ses données.
    J'ai créer un menu fichier , un onglet ouvrir .
    Quand je selectionne ouvrir , j'arrive à ouvrir le fichier mais une fois ouvert lorsque je clic sur le bouton calcul ... le logiciel plante et ce ferme

    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
    //ouverture d'un fichier de donnée type csv et traitement
     
    void Traitement::on_actionOuvrir_triggered()
    {
        // Ouverture d'une boîte de dialogue où l'utilisateur va indiquer l'emplacement, et le nom, d'un fichier à ouvrir.
        //La variable de type QString va contenir l'emplacement et on choisi le type de fichier .
        QString fichier = QFileDialog::getOpenFileName(0, "Ouvrir un fichier", QString(), "Fichier CSV (*.csv)");
     
    }
     
    void Traitement::on_CALCULS_clicked()
    {
     
     
      // On se sert de QFile avec le chemin que l'on vient de récupérer
     
        QList<double>listefinale;
        QList<double>listefinale2;
        QFile file(fichier);
            if(file.open(QIODevice::ReadOnly|QIODevice::Text))
     
                QTextStream stream(&file);
     
            while(!file.atEnd())
     
            {
                QString line = file.readLine();
        //on separe les valeur de la  ligne a chaque :
                    QStringList list = line.split(";");
    Alors que si je laisse le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void Traitement::on_actionOuvrir_triggered()
    vide mais que j'inclus cette opération d'ouverture de fichier en cliquant directement sur le bouton Calculs , j'ouvre bien le fichier et les calculs se lance ...

    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
    //ouverture d'un fichier de donnée type csv et traitement
     
    void Traitement::on_actionOuvrir_triggered()
    {
        // Ouverture d'une boîte de dialogue où l'utilisateur va indiquer l'emplacement, et le nom, d'un fichier à ouvrir.
        //La variable de type QString va contenir l'emplacement et on choisi le type de fichier .
     
    }
     
    void Traitement::on_CALCULS_clicked()
    {
     
        QString fichier = QFileDialog::getOpenFileName(0, "Ouvrir un fichier", QString(), "Fichier CSV (*.csv)");
     
      // On se sert de QFile avec le chemin que l'on vient de récupérer
     
        QList<double>listefinale;
        QList<double>listefinale2;
        QFile file(fichier);
            if(file.open(QIODevice::ReadOnly|QIODevice::Text))
     
                QTextStream stream(&file);
     
            while(!file.atEnd())
     
            {
                QString line = file.readLine();
        //on separe les valeur de la  ligne a chaque :
                    QStringList list = line.split(";");
    Je ne comprend pas mon erreur

    Merci à vous

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 599
    Par défaut
    Bonjour,

    Tu as 2 variables fichier. Une locale à la fonction Traitement::on_actionOuvrir_triggered() créée ligne 7 qui récupère le nom du fichier et détruite immédiatement après! une autre qui est vraisemblablement membre de Traitement et qui reste toujours vide.

  3. #3
    Membre averti
    Homme Profil pro
    Technicien conception industrielle
    Inscrit en
    Avril 2020
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Technicien conception industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2020
    Messages : 18
    Par défaut
    Citation Envoyé par dalfab Voir le message
    Bonjour,

    Tu as 2 variables fichier. Une locale à la fonction Traitement::on_actionOuvrir_triggered() créée ligne 7 qui récupère le nom du fichier et détruite immédiatement après!.
    comment ca detruite ?
    Elle ne reste pas en memoire?
    Car c'est ce que je pensé et c'est pour cela que je la rappel dans la fonction "Calculs"

    (la je sent bien le poid du gros newbies que je suis )

  4. #4
    Responsable Qt & Livres


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

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut


    Malheureusement, pour utiliser Qt, il faut une certaine base en C++ . Si tu définis une variable dans une paire d'accolades (sa "portée"), la variable ne sortira jamais de cette paire d'accolades (principe partagé par énormément de langages à typage statique). Quand tu as ceci (largement simplifié) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void Traitement::on_actionOuvrir_triggered()
    {
        QString fichier = "";
    }
    Ta variable fichier n'existe que dans la paire d'accolades correspondant à la fonction : en dehors, c'est détruit. Si tu veux garder ta variable plus longtemps, il faut déplacer la déclaration de ta variable dans une paire d'accolades "autour" : ici, ça sera dans ta classe, pour obtenir une variable d'instance.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class Traitement {
    private:
        QString filename; 
    public:
        // bla bla
        void on_actionOuvrir_triggered(); 
        // bla bla
    }
    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 !

  5. #5
    Membre averti
    Homme Profil pro
    Technicien conception industrielle
    Inscrit en
    Avril 2020
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Technicien conception industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2020
    Messages : 18
    Par défaut
    Et oui chaque jour sur ce projet ma ramene à cette difficulté : je n'est pas de base en c++ donc j'apprend sur le tas et c'est pas simple...

    En tous cas merci de ton aide j'ai saisie mon erreur

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

Discussions similaires

  1. ouverture de fichier txt
    Par juguul dans le forum MFC
    Réponses: 11
    Dernier message: 18/12/2003, 09h44
  2. Ouverture de fichier en api
    Par Michaël dans le forum Windows
    Réponses: 9
    Dernier message: 10/12/2003, 16h47
  3. Ouverture de fichier
    Par Ricou.13 dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/10/2003, 08h59
  4. Réponses: 2
    Dernier message: 26/02/2003, 15h18
  5. [VBA-E] Evenement ouverture de fichier
    Par gjeff dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/12/2002, 09h42

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