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 :

Découper une chaine


Sujet :

C++

  1. #1
    Invité4
    Invité(e)
    Par défaut Découper une chaine
    Bonjour,

    j'ai un fichier dont la structure est
    [TEXTE][CHAINE DE SEPARATION][CONTENU D'UN FICHIER JPEG][CHAINE DE SEPARATION][TEXTE] etc.

    Je cherche à créer une fonction qui coupe une chaine contenant ce fichier à tous les endroits où il y a la chaine de séparation, et mettgre chaque élément dans un vector :
    [0] TEXTE
    [1] CONTENU D'UN FICHIER JPEG
    [2] TEXTE
    etc.

    J'ai essayé de créer une telle fonction à coups de substr et de find, mais elle ne fonctionne pas.

    Quelqu'un a déjà crée ceci ?

    Merci

  2. #2
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Dans le forum avec des contributions C&C++, il y a 3 ou 4 codes différents qui font ce genre de choses.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 151
    Par défaut
    Tu peux faire un truc dans le genre avec find et substr

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        string ta_grande_chaine = "TEXT|CONTENU D'UN FICHIER JPEG|TEXT|CONTENU D'UN FICHIER JPEG";
        vector<string> vector;
        string sous_chaine;
        size_t pos;
        while( ta_grande_chaine.size() > 0 && pos != string::npos){
          pos = ta_grande_chaine.find("|");
          sous_chaine = ta_grande_chaine.substr(0, pos);
          vector.push_back(sous_chaine);
          ta_grande_chaine.erase(0, pos+1);
        }
    (si j'ai bien compris ce que tu voulais faire)

  4. #4
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Comme Luc l'a fait remarqué : FAQ + recherche
    -> Boost::tokenizer etc...

    Sujet largement traité.

  5. #5
    Invité4
    Invité(e)
    Par défaut
    Aïe j'ai mal cherché.

    Je vais utiliser le code de Anium.

    Merci beaucoup.

  6. #6
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    On en a fourni des plus efficaces...
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  7. #7
    Invité4
    Invité(e)
    Par défaut
    Citation Envoyé par Luc Hermitte Voir le message
    On en a fourni des plus efficaces...
    Je suis désolé je crois que je cherche mal, mais dans la FAQ et dans le forum sources C++, je n'ai pas trouvé.

  8. #8
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Pourtant, c'est dans les post-it de ce forum.
    http://www.developpez.net/forums/sho...d.php?t=236982
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  9. #9
    Invité4
    Invité(e)
    Par défaut
    Merci

    mais comment convertit-on un deque en vector ?
    Je ne suis pas habitué à cet objet.

  10. #10
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    déque ~ vector à quelques spécificités sur les possibilités d'insertions et de suppressions (deque permet d'insérer au début du conteneur en O(1)) et l'absence de capacity et reserve.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  11. #11
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Comme je l'avais dit, il y a a peu près 4 ou 5 implémentation différentes de la même chose dans ce fil.
    Certaines attendent des conteneurs bien précis, d'autres des OutputIterator, ...
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  12. #12
    Invité4
    Invité(e)
    Par défaut
    Merci à vous,

    tout fonctionne.

Discussions similaires

  1. Bash - Découper une chaine de caractères
    Par nicolas.pissard dans le forum Shell et commandes GNU
    Réponses: 13
    Dernier message: 16/12/2014, 13h18
  2. [VB6] Découper une chaine sans délimiteur
    Par dbozec dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 13/04/2006, 19h26
  3. découper une chaine
    Par R@IZER dans le forum Langage
    Réponses: 5
    Dernier message: 09/11/2005, 17h04
  4. [StringTokenizer] Découper une chaine de caractere
    Par nehan dans le forum Collection et Stream
    Réponses: 14
    Dernier message: 10/05/2005, 23h41
  5. [Débutant][Token] découper une chaine
    Par _Eric_ dans le forum Langage
    Réponses: 14
    Dernier message: 06/07/2004, 10h36

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