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 :

chaîne de caractères contenant \0


Sujet :

C++

  1. #1
    bul
    bul est déconnecté
    Membre habitué Avatar de bul
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 193
    Points : 133
    Points
    133
    Par défaut chaîne de caractères contenant \0
    bonjour à tous,
    j'ai "écrit" un petit explorateur,
    avec dev-cpp sous windows,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    OPENFILENAME ofn;
    char szFileName[MAX_PATH]=""; // fichier
    ...
        ofn.lpstrFile = szFileName;
    ...
     if(GetOpenFileName(&ofn))
          { ShellExecute(hwnd, NULL, szFileName , NULL, NULL, 1);
    mais en cas de selection multiple la zone renvoyée est de
    la forme :
    répertoire \0 fichier 1 \0 fichier 2 \0 ... dernier fichier \0 \0
    comment accéder à cette zone pour avoir tous les caractères ?
    je ne sais pas si je suis très très clair ?...
    merci d'avance.
    @+

  2. #2
    Membre averti
    Avatar de rolkA
    Inscrit en
    Juillet 2003
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 324
    Points : 369
    Points
    369
    Par défaut
    C'est très clair.
    Moi je fais comme çà pour séparer les chaînes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            unsigned long length;
            char* p = Buffer;
            std::list<std::string> Strings:
            while ((length = strlen(p)) != 0)
            {
                    Strings.push_back(std::string(p));
                    p += length + 1;
            }
    (Avec Buffer la chaîne en question (finissant par deux '\0'))
    Tes chaînes seront alors stockées dans la liste Strings.

    A+

  3. #3
    bul
    bul est déconnecté
    Membre habitué Avatar de bul
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 193
    Points : 133
    Points
    133
    Par défaut
    accepter mes excuses pour
    avoir tardé à répondre, et
    attention : je suis nul ...

    std::list<std::string> Strings:
    'list' undeclared in namespace 'std'
    comme string...

    que fais-je comme bétise ?
    merci. @+

  4. #4
    Membre averti
    Avatar de rolkA
    Inscrit en
    Juillet 2003
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 324
    Points : 369
    Points
    369
    Par défaut
    Tu as inclu <string> et <list> ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <list>
    #include <string>

  5. #5
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    Bonjour,

    Un petit coup d'oeil dans la ça peut aider.
    On y trouvera des strings.

    Pour les list<T>, tu peux regarder la description ici (SGI), et dans la FAQ tu peux te familiariser avec les conteneurs ici.

    Enjoy!

  6. #6
    bul
    bul est déconnecté
    Membre habitué Avatar de bul
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 193
    Points : 133
    Points
    133
    Par défaut
    déroutant ce langage ...
    #include <list>
    std::list<std::string> Strings;
    et ça marche, merci beaucoup
    mais je reviendrais.
    @+

  7. #7
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    N'oublie pas le tag [RESOLU] (bouton en bas à gauche) chaque fois que tu as trouvé solution à ton problème.



    pour simplifier ton code si tu utilises beaucoup de list et de string

    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
    #include <...>
     
    using std::list;
    using std::string;
     
    int main()
    {
       ...
     
       list<string> Strings;
     
       ...
     
       return EXIT_SUCCESS;
    }

  8. #8
    bul
    bul est déconnecté
    Membre habitué Avatar de bul
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 193
    Points : 133
    Points
    133
    Par défaut
    oui, oui...
    merci encore.
    mais je reviendrai.
    [ je rectifie ]
    @+

  9. #9
    bul
    bul est déconnecté
    Membre habitué Avatar de bul
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 193
    Points : 133
    Points
    133
    Par défaut
    et désolé, mais je ne vois plus
    (l'ai-je déjà vu ? ) ce tag "résolu".

  10. #10
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    en principe tu devrais le voir en bas à gauche de cette page, ainsi que le bouton DELESTAGE.


  11. #11
    bul
    bul est déconnecté
    Membre habitué Avatar de bul
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 193
    Points : 133
    Points
    133
    Par défaut
    ah, juste en dessous de
    "arreter de surveiller ce sujet"
    il y a 2 rectangles mais sans explications,
    sans images, enfin chez moi...
    avec la souris dessus je vois "résolu"
    ou "délestage".
    ces boutons n'existant pas lorsque l'on
    poste une réponse.
    d'accrod, je fais. @+

  12. #12
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Citation Envoyé par bul
    ah, juste en dessous de
    "arreter de surveiller ce sujet"
    il y a 2 rectangles mais sans explications,
    sans images, enfin chez moi...
    avec la souris dessus je vois "résolu"
    ou "délestage".
    ces boutons n'existant pas lorsque l'on
    poste une réponse.
    d'accrod, je fais. @+
    Problème temporaire avec les images du forum, cela devrait être résolu dans peu de temps

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 25/10/2013, 11h33
  2. Réponses: 3
    Dernier message: 02/11/2011, 18h46
  3. [MySQL] Affichage d’une chaîne de caractères contenant des parenthèses
    Par mathiotp dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 20/11/2007, 20h31
  4. Réponses: 15
    Dernier message: 10/08/2007, 09h33
  5. Tri sur une chaîne de caractères contenant des nombres
    Par arnaud_verlaine dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/05/2006, 11h52

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