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 :

Compresser et decompresser des structures


Sujet :

C++

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Compresser et decompresser des structures
    Bonjour,

    J'ai besoin de passer d'une structure a un std::vector<char> et inversement.
    J'aimerais savoir si vous avez un moyen plus efficasse que le mien.

    struct -> vector
    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
    std::vector<char> &             MaClass::pack(maStruct * packet)
    {
      std::string                   myString;
      std::stringstream         myStream;
      std::vector<char>        *to_ret = new std::vector<char>;
     
      if (packet)
        {
          myStream << packet->infoA;
          myStream << packet->infoB;
     
          myString = myStream.str();
          for (unsigned int i = 0 ; i < myString.size() ; ++i)
            (*to_ret)[i] = myString[i];
        }
     
      return *to_ret;
    }
    vector -> struct
    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
    20
    21
    22
    23
    24
    25
    maStruct *                      MaClass::unpack(std::vector<char> & buffer)
    {
      std::string                    myString;
      std::stringstream          myStream;
      t_packet                      *to_ret = new t_packet;
     
     
      if (!buffer.empty())
        {
          myString.resize(buffer.size());
          for (unsigned int i = 0 ; i < buffer.size() ; ++i)
            myString[i] = buffer[i];
     
          myStream << myString.erase(0 , sizeof(to_ret->infoA));
          myStream >> to_ret->infoA;
          myStream.clear();
          myStream << myString.erase(0 , sizeof(to_ret->infoB));
          myStream >> to_ret->infoB;
          myStream.clear();
          return to_ret;
        }
      else
        delete to_ret;
      return NULL;
    }
    Dernière modification par Invité ; 07/12/2012 à 12h08.

Discussions similaires

  1. compression et decompression des fichiers
    Par ron lavezi dans le forum Visual C++
    Réponses: 2
    Dernier message: 05/03/2015, 10h05
  2. [Lex/Yacc] Aide traduction des structures de contrôle
    Par pelo68 dans le forum Générateurs de compilateur
    Réponses: 2
    Dernier message: 07/12/2010, 10h26
  3. [Stratégie] Type des structure de persistance
    Par calogerogigante dans le forum Général Java
    Réponses: 10
    Dernier message: 09/02/2006, 08h06
  4. Probleme avec des structures
    Par lenectar dans le forum C
    Réponses: 17
    Dernier message: 30/12/2005, 09h53
  5. Compresser et decompresser un ensemble de fichier
    Par Walm dans le forum C++Builder
    Réponses: 2
    Dernier message: 12/01/2004, 16h23

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