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

C++ Discussion :

équivalent du couple QByteArray/QDataStream


Sujet :

C++

  1. #1
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 936
    Points
    4 936
    Par défaut équivalent du couple QByteArray/QDataStream
    bonjour,

    je suis sur un projet ou je ne peux pas me servir de qt, et donc j'ai besoin d'un équivalent au couple QByteArray/QDataStream.

    pour ceux ne connaissant pas ces classes, voilà leur fonction :

    QByteArray : tableau d'octets plus évolué.
    QDataStream : classe permettant de traiter en autre un QByteArray comme un stream, avec opération de lecture et d'écriture.

    donc je cherche un équivalent si possible dans la stl.

    cordialement.

  2. #2
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    Bonjour

    Fondamentalement, QByteArray est un char* (cf sources).
    QDataStream est une classe de sérialisation donc le plus proche est boost::serialize (pas d'équivalent dans la STL je pense).

    Le plus simple est peut être de partir de cela et d'ajouter les fonctionnalités manquantes.

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 936
    Points
    4 936
    Par défaut
    merci pour ces indications, je vais voir ce que je peux faire de ça.

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    Citation Envoyé par gbdivers Voir le message
    Fondamentalement, QByteArray est un char* (cf sources).
    std::string ou std::vector<char> c'est quand même mieux que char*,non

  5. #5
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    Citation Envoyé par 3DArchi Voir le message
    Salut,
    std::string ou std::vector<char> c'est quand même mieux que char*,non
    Oui, bien sur. Je ne disais pas d'utiliser char* mais c'est ce qui est utilisé dans Qt. Et très clairement, le code Qt est parfois (souvent ?) pas très clean niveau C++ (Qt est fortement atteint du NIH).
    Il faudrait probablement partir sur un std::vector<char> puisque le QByteArray ne représente pas qu'une chaîne de caractères mais peut contenir bien d'autres choses (tableau d'octets bas niveau).

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 936
    Points
    4 936
    Par défaut
    Citation Envoyé par gbdivers Voir le message
    (Qt est fortement atteint du NIH).
    je ne suis pas très familier de ce sigle. traduction siouplait *siffle*


    pour mon problème, je suis encore en train de regarder la doc de boost.

  7. #7
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    "Not Invented Here" : syndrome qui consiste à tout réécrire plutôt que d'utiliser l'existant (personnellement, je suis souvent atteint de cette maladie )
    Qt fait souvent cela, pour des raisons historique et de portabilité (compatibilité avec des anciens compilateurs, implémentation de STL pas top, etc.)

  8. #8
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Citation Envoyé par gbdivers Voir le message
    Il faudrait probablement partir sur un std::vector<char> puisque le QByteArray ne représente pas qu'une chaîne de caractères mais peut contenir bien d'autres choses (tableau d'octets bas niveau).
    Dans ce cas, je suggère plutôt un std::vector<unsigned char>
    Dans mon code de valeur :
    char => Caractère
    signed char => Petits nombres
    unsigned char => Données brutes de fonderie, s'apprêtant à des manipulations de bits
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

Discussions similaires

  1. Problème de pointeur / QDataStream et/ou QByteArray
    Par gregoire.stein dans le forum Débuter
    Réponses: 2
    Dernier message: 01/02/2014, 16h16
  2. Convertir un QDataStream en QByteArray
    Par kek's dans le forum Qt
    Réponses: 2
    Dernier message: 04/02/2011, 11h20
  3. QbyteArray et QDatastream
    Par tiagocerqueira dans le forum Qt
    Réponses: 4
    Dernier message: 08/07/2010, 11h21
  4. Réponses: 21
    Dernier message: 14/11/2008, 12h02
  5. Équivalent du #IFDEF
    Par agh dans le forum Langage
    Réponses: 4
    Dernier message: 14/10/2002, 18h44

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