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 :

Transformer un QByteArray en QString


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 141
    Par défaut Transformer un QByteArray en QString
    Salut,
    J'explique ma situation : j'ai un programme qui télécharge un fichier venant d'un autre programme, comme ce sont des fichiers, le contenu est envoyé sous la forme d'un QByteArray.

    J'ai ensuite besoin d'utiliser ce QByteArray de la même façon qu'un QString.

    Le problème étant que je n'ai pas encore trouvé de moyen pour passer un QByteArray en QString.

    Le constructeur de QString prenant un QByteArray ne marche pas, la méthode append non plus, j'ai même tenté un QDataStream et un QTextStream, sans succès.

    Donc voila, connaîtriez-vous une méthode pour passer un QByteArray en QString?

    Merci d'avance

  2. #2
    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 es sure que la constructeur de QString ne marche pas ??
    Peux tu nous fournir un bout de code et nous expliciter un peu plus ton problème. En gros il y a quoi dans ta QString un fois contruite avec le QByteArray ?
    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.

  3. #3
    Membre éprouvé Avatar de sardik
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 135
    Par défaut
    Tu pourrais combiner dans une boucle :

    La méthode de QByteArray :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char QByteArray::at ( int i ) const
    et la méthode de QString :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QString fromAscii ( const char * str, int size = -1 )
    Afin de faire une copie bits à bits ...

  4. #4
    Membre éprouvé Avatar de sardik
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 135
    Par défaut
    Enfin je ne sais pas si j'ai bien compris et il y a surement mieux ..

  5. #5
    Membre très actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 141
    Par défaut
    Lorsque j'affiche le QString, ça n'affiche rien (Sur un QMessageBox, y'a aucun message)

    Le QByteArray n'est pas vide, j'ai testé sa taille (Et il vaut 32, ce qui est le double de ce que la QString devrait être)

    Sinon oui je suis certain que le constructeur de QString ne marche pas, j'ai aussi essayé d'utiliser QVariant pour transformer, mais ça ne marche pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    QByteArray messageRecu;
        QString test;
        in >> messageRecu;
        test = messageRecu;
        QMessageBox::information(NULL,"Test",test);
    in est un QDataStream utilisé pour récupérer les données d'un QTcpSocket.

    in >> test fonctionne très bien, mais j'aimerais justement avoir un QByteArray ou un QString selon mes besoins.

    Une idée?

    EDIT : Pour la copie bit a bit, j'y ai pensé mais bon j'imagine que Qt à bien une solution qui fonctionne, pourquoi réinventer la roue

  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
    Si in >> test marche tres bien tu inverses le problème avec ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QByteArray messageRecu = test.toAscii ();
    Est ce que cela marche ?
    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.

  7. #7
    Membre très actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 141
    Par défaut
    Oui oui ça fonctionne, mais ça revient a stocker du contenu binaire dans un QString, et bon, je crois pas que ce soit fait pour ça

  8. #8
    Membre émérite

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Par défaut
    Dans quel format est le texte dans le QByteArray (Latin1, UTF-8, UTF-16, ...) ?

Discussions similaires

  1. Conversion QString -> QByteArray (encodage)
    Par pasqual dans le forum Qt
    Réponses: 4
    Dernier message: 02/03/2010, 14h23
  2. Petit problème QString et QByteArray
    Par tiagocerqueira dans le forum Qt
    Réponses: 0
    Dernier message: 02/02/2010, 18h07
  3. transformer un jour en JJ/MM/AA
    Par gemini_010 dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 08/11/2002, 22h55
  4. Transformer un caractère en type énuméré
    Par HT dans le forum Langage
    Réponses: 3
    Dernier message: 22/10/2002, 20h46
  5. FFT(Fast Fourier Transform)
    Par IngBen dans le forum Traitement du signal
    Réponses: 6
    Dernier message: 23/05/2002, 16h35

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