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 :

Parser message MIME


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre � l'essai
    Inscrit en
    Juin 2010
    Messages
    5
    D�tails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 5
    Par d�faut Parser message MIME
    BOnjour, je poste ici car n'ayant pas un niveau tr�s avanc� de C++ j'aurais besoin d'un peu d'aide...
    Je suis en train d'aider au d�veloppement d'un client mail en C++ et l� je m'occupe de la partie des messages MIME. Je bloque sur une m�thode :

    void initParse(std::istream& in, const HeadersType& headers)

    voici son principe :
    si la partie des entetes est vide il faut lire les entetes + le contenu � partir du flux d'entr�e.
    On attend une entr�e de ce type :
    Entete 1 : xxx\r\n
    Entete 2 : yyy\r\n
    \r\n
    [contenu ]
    Faut -il que je r�cup�re tout d'un coup ou que je parcours au fur et � mesure le flux en entr�e en rep�rant les " \r\n ". Y a t-il une fonction qui existe pour �a ?

    Le deuxi�me cas c'est si au contraire elle n'est pas vide, il faut lire uniquement le contenu en prenant en consid�ration les entetes transmis.

    Voil�, mon probl�me est que je ne suis pas tr�s famili�re avec istream, j'ai regard� quelques exemples sur le net mais je reste toujours bloqu�e... Je pense qu'il faudrait que je r�cup�re toutes les donn�es quelque part pour pouvoir ensuite les manipuler.
    Si vous avez des infos pour m'�clairer je vous en remercie !

  2. #2
    Membre exp�riment� Avatar de Grulim
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    234
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 234
    Par d�faut
    Ne peux-tu pas utiliser istringstream ?
    Cette classe te facilitera la manipulation de chaine...
    Cherche aussi du cot� de getline().

  3. #3
    Membre � l'essai
    Inscrit en
    Juin 2010
    Messages
    5
    D�tails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 5
    Par d�faut
    Oui je comptais utiliser getline, mais en fait je ne sais pas trop dans quoi mettre les donn�es pr�sentes dans le flux.
    Est ce que si je d�clare un std::stringstream par exemple il y aurait une m�thode pour copier les donn�es dans ce dernier ?

  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
    Par d�faut
    Salut,
    Je ne comprend pas l'id�e des stringstream ? Pour parser la ligne d'en-t�te ?

    Citation Envoy� par oDREY Voir le message
    Oui je comptais utiliser getline, mais en fait je ne sais pas trop dans quoi mettre les donn�es pr�sentes dans le flux.
    Je ne comprend pas cette remarque ? Tu r�cup�res les donn�es dans un std::[w]string avec getline. Ensuite, soit tu les gardes pour les traiter plus tard. Auquel cas, un conteneur de la STL devrait faire l'affaire. Soit tu les traites au fur et � mesure.

    Ceci dit que les en-t�tes pass�s en param�tres (const HeadersType& headers) soient vides ou pas, tu devras commencer par lire tous les en-t�tes de ton flux avant d'arriver au contenu car de toute fa�on tu ne sais pas � l'avance combien il y a de lignes d'en-t�tes et de quelle taille.

  5. #5
    Membre � l'essai
    Inscrit en
    Juin 2010
    Messages
    5
    D�tails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 5
    Par d�faut
    D�sol� pour les remarques un peu "b�tes" mais j'ai du mal � voir comment cel� fonctionne du coup je regarde un peu tout et n'importe quoi sur le net...
    Bref, pour en revenir � mon probl�me :

    Si j'attends la fin du flux, en faisant plusieurs getline, je peux arriver � mettre toutes les donn�es dans le string ?
    Genre en faisant :

    std::string mess;
    while(in)
    mess = std::getline(in,mess)

  6. #6
    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
    Par d�faut
    Salut,
    Citation Envoy� par oDREY Voir le message
    D�sol� pour les remarques un peu "b�tes"
    Les remarques ne sont pas b�tes, c'est juste que c'est moins facile de se comprendre par �crit qu'en vis-�-vis.

    Citation Envoy� par oDREY Voir le message
    Bref, pour en revenir � mon probl�me :

    Si j'attends la fin du flux, en faisant plusieurs getline, je peux arriver � mettre toutes les donn�es dans le string ?
    Genre en faisant :

    std::string mess;
    while(in)
    mess = std::getline(in,mess)
    Presque : F.A.Q. : Comment faire pour lire un fichier ligne par ligne ?
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    std::string ligne;
       while ( std::getline( fichier, ligne ) )
       {
           // traitement de ligne en fonction des paramètres (header ou pas)
       }

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Encrypter un message MIME
    Par Mograine dans le forum C#
    R�ponses: 1
    Dernier message: 01/12/2014, 11h04
  2. R�ponses: 1
    Dernier message: 05/03/2008, 21h41
  3. Importer message mime dans Lotus
    Par daniel_gre dans le forum VBScript
    R�ponses: 0
    Dernier message: 10/12/2007, 18h46
  4. Parser un message
    Par jro-daemon dans le forum C
    R�ponses: 1
    Dernier message: 21/02/2007, 13h33
  5. API pour parser/modifier des messages HTTP
    Par Diody dans le forum Entr�e/Sortie
    R�ponses: 2
    Dernier message: 09/02/2007, 00h43

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