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 :

'QStringList*' is not a class, struct, or union type


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 95
    Par défaut 'QStringList*' is not a class, struct, or union type
    Bonjour,

    Je ne suis pas très a l'aise avec les pointeurs et je tombe devant une erreur que je ne parviens pas à comprendre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QStringList*' is not a class, struct, or union type
    Cela se passe sur la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QStringList* fullColoration = Functions::readFileLine("langages/"+name+".ini");
    qui fait appel a cette fonction :

    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
    QStringList* Functions::readFileLine(QString filePath){
        QStringList* lines = new QStringList();
        QFile file(filePath);
     
           if(file.open(QIODevice::ReadOnly | QIODevice::Text))
           {
               QTextStream flux(&file);
               while(!flux.atEnd())
               {
                   lines->append(flux.readLine());
               }
               file.close();
           }
           return lines;
    }

    Comme tout ignorant qui se respecte, j'ai tout essayé sur la syntaxe (enlever, ajouter des * un peu partout etc) mais ce fichu machin refuse obstinément de m’obéir !

    Une idée?

    Amicalement,

    idle

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 111
    Par défaut
    Bonjour, essaie plutôt ceci:
    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
    QStringList* Functions::readFileLine(QString filePath){
        QStringList lines;
        QFile file(filePath);
     
           if(file.open(QIODevice::ReadOnly | QIODevice::Text))
           {
               QTextStream flux(&file);
               while(!flux.atEnd())
               {
                   lines << flux.readLine();
               }
               file.close();
           }
           return &lines;
    }
    Bonne continuation.

  3. #3
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 035
    Par défaut
    Citation Envoyé par abdou57 Voir le message
    Bonjour, essaie plutôt ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    QStringList* Functions::readFileLine(QString filePath){
        QStringList lines;
        ...
           return &lines;
    }
    surtout pas
    Une fois sortie de la fonction, lines est détruit => le pointeur sera invalide

    @Idleman as tu essayé d'ajouter en début de ton fichier?

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 111
    Par défaut
    Citation Envoyé par yan Voir le message
    surtout pas
    Une fois sortie de la fonction, lines est détruit => le pointeur sera invalide

    @abdou57 as tu essayé d'ajouter en début de ton fichier?
    pour l'inclusion de QStringList la réponse est oui.

    pour la destruction de lines, je n'y ai pas pensée.

    merci.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 95
    Par défaut
    Bonjour,

    Merci pour toutes ces réponses

    Malheureusement ça n'est pas un simple oublis d'inclusion de QStringList

    j'ai bien le #include <QStringList> dans mon fichier d'entêtes.

    D'autres idées?

  6. #6
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Par défaut
    Tu peux toujours essayer cela c'est plus propre je trouve.

    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 Functions::readFileLine(QString filePath, QStringList& lines)
    {
       QFile file(filePath);
     
       if(file.open(QIODevice::ReadOnly | QIODevice::Text))
       {
    	   QTextStream flux(&file);
    	   while(!flux.atEnd())
    	   {
    		   lines << flux.readLine();
    	   }
    	   file.close();
       }
    }
    Au moins c'est la fonction appelante qui maîtrise la durée de vie de l'objet.

    PS: A valider j'ai pas testé le code mais cela devrait fonctionner...
    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.

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/05/2015, 17h45
  2. Réponses: 1
    Dernier message: 14/09/2008, 00h32
  3. Réponses: 1
    Dernier message: 14/07/2008, 11h17
  4. class::struct
    Par ibtisss dans le forum Modules
    Réponses: 3
    Dernier message: 28/01/2006, 23h36

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