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 :

Création et écriture avec QFile


Sujet :

Qt

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 21
    Points : 13
    Points
    13
    Par défaut Création et écriture avec QFile
    Bonjour,

    Je voudrais écrire dans un fichier .txt depuis un flux TextStream, le problème est que je ne sais pas pourquoi quand je met moi même le nom du fichier ça marche bien, je peut le créer et enregistrer dedans mes données.
    Mais quand j'utilise une méthode qui me sert à récupérer l'id de celui qui m'envoie le message et je la met comme nom du fichier en lui ajoutant la date et heure système, ça marche pas. Le fichier n'est pas créé.
    voila ma fonction qui me sert de créer le nom voulu du fichier:
    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
    QStringList Server::Parser_text(QString text)
    {
        cout << "je decoupe mon message" <<endl;
        QStringList list = text.split(",", QString::SkipEmptyParts);
        QString id = list.value(0);
        QString type = list.value(1);
        cout << "id : "  << id.toStdString() <<endl;
        cout << "type : "  << type.toStdString() <<endl;
        QString filename = id+"_"+QDateTime::currentDateTime().toString();
        //filename.replace(" ","_");
        cout << "filename : " << filename.toStdString() <<endl;
        QString message;
        for (int i=2; i<list.size(); i++)
            message += list[i];
        if (type == "file")
            comm->Save_file(filename,message);
     
        return list;
    }
    Et ma fonction qui enregistre mes données dans un fichier .txt
    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
    void Communication::Save_file(QString filename, QString message)
    {
        cout << "file recue" << endl;
        QFile file;
        file.setFileName(filename+".txt");
        QDir::setCurrent("log");
        //QString k = QDir::current().absolutePath();
        //cout << k.toStdString() << endl;
        //QFile file("log//r1.txt");
        cout << file.fileName().toStdString()<<endl;
        file.open(QIODevice::WriteOnly | QIODevice::Text);
        QTextStream flux(&file);
        flux.setCodec("UTF-8");
        flux << QString("%1").arg(message) << endl;
        file.close();
    }
    Si je remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    QFile file;
    file.setFileName(filename+".txt");
    QDir::setCurrent("log");
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QFile file("log//r1.txt");
    Ca marche sans problème,
    J'arrive pas à comprendre mon erreur elle vient d'où !!!
    Merci de m'aider

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Points : 24
    Points
    24
    Par défaut
    Salut,
    Ton problème réside dans le nom de ton fichier.
    L'heure que tu récupères est de la forme "hh:mm:ss". Les noms de fichier n'acceptent pas les caractères ":".
    Remplace les par "_" par exemple.

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par 0beron Voir le message
    Salut,
    Ton problème réside dans le nom de ton fichier.
    L'heure que tu récupères est de la forme "hh:mm:ss". Les noms de fichier n'acceptent pas les caractères ":".
    Remplace les par "_" par exemple.
    Au fait, j'ai essayer avec seulement la Date et ça enregistre parfaitement, mais le temps marche pas, je savais pas qu'il y a des restrictions sur les ":" pour les noms de fichiers, je viens de tester et ça marche très bien,
    Merci

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

Discussions similaires

  1. Vérification d'écriture avec QFile
    Par chrtophe dans le forum Débuter
    Réponses: 3
    Dernier message: 29/12/2011, 11h17
  2. [Ant] [Ejb] Probléme de création d'ejb avec Genic
    Par rivierem dans le forum JOnAS
    Réponses: 7
    Dernier message: 25/06/2004, 16h21
  3. [DOM] création et écriture
    Par phoebe dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 22/03/2004, 15h13
  4. Création de table avec index
    Par Seb7 dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/04/2003, 16h11
  5. Création d'agrégat avec SQLServer
    Par Testav dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 19/09/2002, 16h54

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