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 :

Enregistrer un objet QMap dans un fichier


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    programmation
    Inscrit en
    Janvier 2020
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : programmation

    Informations forums :
    Inscription : Janvier 2020
    Messages : 69
    Par défaut Enregistrer un objet QMap dans un fichier
    bonjour je voudrais enregistrer un QMap dans un fichier le QMap et défini comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QMap<int,QMap<QString,QString>>saveMessage;
    je n'ai rien trouvé sur Internet pour permettre une telle sauvegarde.
    a savoir je voudrais pourvoir restaurer les liste a partir de cette sauvegarde.
    prouver vous m'aider ?
    merci d'avance

  2. #2
    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


    A priori, QDataStream pourrait t'aider : https://doc.qt.io/qt-5/datastreamformat.html.
    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 !

  3. #3
    Membre confirmé
    Homme Profil pro
    programmation
    Inscrit en
    Janvier 2020
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : programmation

    Informations forums :
    Inscription : Janvier 2020
    Messages : 69
    Par défaut
    bonjour ca fonctionne je peut l'enregistrer mais je ne peut pas le lire Nom : Capture d’écran 2021-07-14 141650.png
Affichages : 260
Taille : 31,1 Ko

  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
    Poste plus de code, ça sera plus facile de t'aider (et avec du copier-coller, pas une capture d'écran, c'est plus facile à travailler).

    Sinon, normalement, pour la lecture et l'écriture, tu es censé utiliser les opérateurs de flux (<< et >>).
    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 confirmé
    Homme Profil pro
    programmation
    Inscrit en
    Janvier 2020
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : programmation

    Informations forums :
    Inscription : Janvier 2020
    Messages : 69
    Par défaut
    bonojour actuellement pour enregistrer dans le fichier je fait comme ca :
    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
    void Widget::server_writetofile(QMap<QString, QString> FluxFile)
    {
        ++NbOfMessage;
        saveMessage[NbOfMessage]=FluxFile;
        if(parametres.savemessage){
            QString fichier = "chat.ants";
            QFile file(fichier);
            if (file.open(QIODevice::ReadWrite | QIODevice::Text | QIODevice::Append))
            {
                QDataStream fichier(&saveMessage);
                fichier << FluxFile;
            }
            else
            {
                server_displayMessagelist(server_generatemesage(tr("il est imposible d'ecrire dans le fichier"),tr("chatbot")));
            }
            file.close();
        }
    }
    ce code me renvoie l'erreur : erreur : no matching constructor for initialization of 'QDataStream'
    pour récupérer le contenu du fichier je fait comme ca :
    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
    void Widget::server_recoverallfile()
    {
     
        QFile fichier("chat.ants");
        QMap<int,QMap<QString,QString>> texte;
       if(fichier.open(QIODevice::ReadOnly))
       {
           QTextStream flux(&fichier);
           while(!flux.atEnd())
           texte = flux.readAll();
           fichier.close();
       }
       else
       {
           server_displayMessagelist(server_generatemesage(tr("le fichier et inaxecible"), tr("chat bot")));
           return 0;
       }
     
    }

  6. #6
    Membre confirmé
    Homme Profil pro
    programmation
    Inscrit en
    Janvier 2020
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : programmation

    Informations forums :
    Inscription : Janvier 2020
    Messages : 69
    Par défaut
    bonjour
    le 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
    15
    16
    17
    18
    19
    void Widget::server_writetofile(QMap<QString, QString> FluxFile)
    {
        ++NbOfMessage;
        saveMessage[NbOfMessage]=FluxFile;
        if(parametres.settings["save message"]=="true"){
            QString fichier = "chat.ants";
            QFile file(fichier);
            if (file.open(QIODevice::ReadWrite))
            {
                QDataStream fichier(&saveMessage);// erreur : no matching constructor for initialization of 'QDataStream'
                fichier << FluxFile;
            }
            else 
            {
                server_displayMessagelist(server_generatemesage(tr("il est imposible d'ecrire dans le fichier"),tr("chatbot")));
            }
            file.close();
        }
    }
    returne l'erreur erreur : no matching constructor for initialization of 'QDataStream'
    le 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
    15
    16
    17
    18
    19
    QMap<int,QMap<QString,QString>> Widget::server_recoverallfile()
    {
        QFile fichier("chat.ants");
        QMap<int,QMap<QString,QString>> texte;
       if(fichier.open(QIODevice::ReadOnly))
       {
           QTextStream flux(&fichier);
           while(!flux.atEnd())
           texte = flux.readAll(); //erreur : no viable overloaded '='
           fichier.close();
           return texte;
       }
       else
       {
           server_displayMessagelist(server_generatemesage(tr("le fichier et inaxecible"), tr("chat bot")));
     
       }
     
    }
    revoie l'erreur erreur : no viable overloaded '='

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 24/07/2006, 12h09
  2. Réponses: 5
    Dernier message: 25/04/2006, 09h33
  3. enregistrer une liste chainée dans un fichier?
    Par ALF-Teams dans le forum C
    Réponses: 7
    Dernier message: 08/03/2006, 18h42
  4. Réponses: 12
    Dernier message: 27/01/2006, 11h07
  5. Réponses: 10
    Dernier message: 16/12/2004, 15h23

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