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 :

string and char*


Sujet :

C++

  1. #1
    Membre confirm�
    Inscrit en
    Septembre 2006
    Messages
    86
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 86
    Par d�faut string and char*
    Bonjour ,

    Dans mon appli je recois des messages de l'internet (message xml) comme ci dessous :



    unsigned char tab* ="<RootElement param=\"value\"><FirstElement>Some Text</FirstElement><SecondElement param2=\"something\"><Inline>Inlined text</Inline> Post-text.</SecondElement></RootElement><RootElement param=\"value\"><FirstElement>Some Text</FirstElement><SecondElement param2=\"something\"><Inline>Inlined text</Inline> Post-text.</SecondElement></RootElement>";


    A partir de ce char* je veux decouper mon message pour plusieurs de facon a avoir 1 seul message xml ,par exemple :
    ="<RootElement param=\"value\"><FirstElement>Some Text</FirstElement><SecondElement param2=\"something\"><Inline>Inlined text</Inline> Post-text.</SecondElement></RootElement><
    et puis l'envoyer vers le parseur (et ceci pour parser chaque message a part)
    et ainsi de suite......

    Est ce qu'il y a moyen de le faire ( ie le decoupage de char* en plusierus messages xml) ?
    P.S : le char* contient plusieurs messages xml
    Merci beaucoup

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    D�tails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Par d�faut
    Salut,

    Pourquoi ne pas ajouter une racine qui englobe tous les messages et envoyer tout �a � l'analyse ?

    MAT.

  3. #3
    Membre confirm�
    Inscrit en
    Septembre 2006
    Messages
    86
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 86
    Par d�faut
    Citation Envoy� par Mat007 Voir le message
    Salut,

    Pourquoi ne pas ajouter une racine qui englobe tous les messages et envoyer tout �a � l'analyse ?

    MAT.
    C'est parceque j'ai besoin de parser message par message. En fait chaque message correspond a une requete/ reponse et je dois construire la requete ou la reponse.

    Donc j'ai besoin de parser chaque message a part ( contraintes du projet)

  4. #4
    Membre �m�rite
    Homme Profil pro
    Consultant ERP
    Inscrit en
    F�vrier 2004
    Messages
    644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Consultant ERP

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 644
    Par d�faut
    Tu cherches vraiment pas la simplification

    le XML-RPC est un seul message � la fois.

    Sinon, tu peux t'amuser � faire un parseur xml � la main, � moins que tu en trouves un qui accepte de travailler sur des morceaux de flux.

  5. #5
    Membre confirm�
    Inscrit en
    Septembre 2006
    Messages
    86
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 86
    Par d�faut
    Citation Envoy� par swirtel Voir le message
    Tu cherches vraiment pas la simplification

    le XML-RPC est un seul message � la fois.

    Sinon, tu peux t'amuser � faire un parseur xml � la main, � moins que tu en trouves un qui accepte de travailler sur des morceaux de flux.
    C'est des messages xml venant d'une socket SSL. Certe il y a qu'un seul message xml envoyer par reponse ou requete , mais le reseaux TCP/IP peux decouper le message ou s'il y avais de retard il y aurra plusieurs messages xml dans seul paquet.

    Pour cela avant de faire le parsing, j'ai developer une fonction qui recupere les messages xml une par une de mon buffer d'entr�e et de les envoyer au parser pour construire mon paquet.

    A tester ....

    Merci

  6. #6
    Membre �clair� Avatar de Biosox
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    298
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 298
    Par d�faut
    hello. Si tu sais � l'avance quel est le tag "racine" (<RootElement> dans ton exemple), alors une solution serait de mettre tout ton buffer dans une string et de boucler avec:

    index = taString.find_first_of("</RootElement>")
    tu vas trouver ainsi la position de la fin de ton premier "element"
    (attention, en fait tu vas trouver la position du '<' de </RootElement>, il faut encore calucler un index2 pour trouver le '<' du prochain <RootElelement>)
    ensuite tu cr�e un substring a cet endroit:
    taString.substr(index2)
    ainsi la substring contiendra tous les RootElements suivants

    tu boucle jusqu'� ce qu'il n'y en ait plus.

    http://www.cppreference.com/cppstrin..._first_of.html
    http://www.cppreference.com/cppstring/substr.html

Discussions similaires

  1. [DEBUTANT] String et char, bug
    Par FinalSpirit dans le forum D�buter
    R�ponses: 15
    Dernier message: 10/01/2006, 18h42
  2. Borland + sqlite (aducom) + string > 256 char = pas conte
    Par spyroux dans le forum C++Builder
    R�ponses: 1
    Dernier message: 16/12/2005, 22h48
  3. Evaluation d'une variable string ou char* en C++
    Par Coelacanthe dans le forum SL & STL
    R�ponses: 2
    Dernier message: 08/11/2005, 09h27
  4. Convertir String en Char: comment?
    Par nmathon dans le forum Langage
    R�ponses: 2
    Dernier message: 22/08/2005, 20h58
  5. [Debutant(e)]limitation du String 65536 char
    Par srane dans le forum API standards et tierces
    R�ponses: 8
    Dernier message: 28/05/2004, 23h42

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