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 :

Problème traduction fichier pdf binaire en héxa (0D 0A)


Sujet :

C++

  1. #1
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 747
    Points : 185
    Points
    185
    Par défaut Problème traduction fichier pdf binaire en héxa (0D 0A)
    Bonjour

    Je récupère le flux binaire d'un fichier pdf sous forme de blob (%PDF-1.4 ...) dans ma fonction BlobToBlobVector (c'est ce qui est passé en paramètre de la fonction). Je prends un par un les caractères de ce flux pour les transformer en hexa. Je renvoie alors cette chaine héxa dans result qui est un string. Mon problème c'est qu'au lieu d'avoir ceci,

    255044462D312E340D0A25C3A4C3BCC3B6C39F0D0A322030206F626A0D0A3C3C202F4C656E6774682033203020520D0A2020.....

    j'ai ceci

    255044462D312E34 D A25C3A4C3BCC3B6C39F D A322030206F626A D A3C3C202F4C656E677468203320302052 D A2020.....

    En gros, cela merde sur 0D 0A (qui est le saut de ligne) mais je ne sais pas comment résoudre le problème.

    Voici mon 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    void ConvertToHex(std::stringstream & s,const unsigned char & t)
    {
    	//initialise le flux en hexa,majuscule et ecriture a gauche
        s<<std::hex<<std::uppercase <<std::right;
    	//envoie t dans le flux sur 2 caractère
    	s<<std::setw(2)<< static_cast<unsigned int>(t);
    }
     
     
    std::string CObjetMetier::BlobToBlobVector(const OBlob & m_blob)
    {
    	std::vector<unsigned char> vectorResult;
    	short status= OLOB_NEED_DATA;
    	int PositionFichier = 0;
    	unsigned int bufsize;
    	std::string result;
     
    	std::stringstream iosout;
     
    	bufsize = m_blob.GetSize();
     
    	unsigned char *BufferTmp = new unsigned char[bufsize];
     
    	unsigned long NbLue=0;
     
    	result = "";
    	NbLue = m_blob.Read(&status, BufferTmp,  bufsize );
    	for (unsigned long i=0; i<NbLue ;i++)
    	{
    		ConvertToHex(iosout,BufferTmp[i]);  
    	}
     
    	result = iosout.str();
     
        return  result; 
    }
    Pour Mongaulois qui se poserait la question , le code d'avant était bon. Le hic c'est que c'est beaucoup trop long alors j'essaie de gagner du temps en réduisant au max le nombre de lectures du blob.


    Merci

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    il faut que tu ajout
    iosout.fill('0'); pour expliquer au flux qu'il doit remplire avec le carctère 0 et non espace

    [EDIT]
    ici result ne sert a rien a part perdre de temps

  3. #3
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 747
    Points : 185
    Points
    185
    Par défaut
    Oui Merci, ça marche bien mieux

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

Discussions similaires

  1. problème encodage fichier pdf
    Par marco056 dans le forum Général Python
    Réponses: 5
    Dernier message: 12/11/2013, 00h02
  2. Problème génération fichier PDF
    Par jobez dans le forum VB.NET
    Réponses: 1
    Dernier message: 21/11/2011, 23h23
  3. Problème affichage fichier PDF
    Par kroy0wen dans le forum Débuter
    Réponses: 13
    Dernier message: 08/07/2011, 22h07
  4. Problème ouverture fichier pdf
    Par rorobase dans le forum VBA Access
    Réponses: 2
    Dernier message: 28/10/2008, 10h29
  5. Réponses: 11
    Dernier message: 13/10/2004, 00h58

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