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

MFC Discussion :

Extraire Informations d'une CString


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 37
    Par défaut Extraire Informations d'une CString
    Bonjour,
    j'ai un probleme auquel je ne trouve pas de réponse, mais qui ne doit pas être bien compliqué.
    J'ai une CString dans laquelle il y a plusieurs informations, par ex :
    M_ABC_x012_bonjour.
    J'aimerais détecter le moment ou il y a le numéro, et découper ensuite ma CString en 3 morceaux : ce qu'il y a avant, le numéro, et ce qu'il y a apres.

    Pensez vous que c'est possible ?

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    si tu consultes la doc de la classe CString tu trouves tout ...
    Find pour chercher
    Left pour extraire a gauche
    Right à droite
    Mid à partir de jusqu'a ...

    donc tu peux faire ce que tu veux..

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 72
    Par défaut
    salut,

    je pense que CString::Tokenize et cet exemple peuvent t'aider

    edit : désolé pour la double réponse

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 37
    Par défaut
    Merci pour vos réponses.
    Mais disons que j'ai regardé les Left, Right, mais à chaque fois, il faut donner la position dans la chaine des caractères à extraire.
    Et moi, je ne connais pas à priori la taille de mon numéro.
    De plus Find permet de rechercher un caractère en particulier et non un type (enfin, c'est ce que j'ai compris)
    Y a-t-il une méthode pour repérer un type particuler (int par ex.) et qui retourne une position dans la chaine ?

    Merci beaucoup

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 143
    Par défaut
    salu scuz60

    t'as aussi les fonctions GetBuffer() et GetLenght() qui te permette de foutre ta CString dans une chaine de caractères standard du type char

    Et après finger in the new , tu bosse avec une chaine normale donc t'as des fonctions C tout à fait classique qui de permette de detecter des chiffres des lettres ( sscanf par exemple, etc )

    ex

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char *cmax = strchr((char *)str.GetBuffer(str.GetLength()),'.');
    str etant une CString

  6. #6
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    Citation Envoyé par Minos2
    salu scuz60

    t'as aussi les fonctions GetBuffer() et GetLenght() qui te permette de foutre ta CString dans une chaine de caractères standard du type char

    Et après finger in the new , tu bosse avec une chaine normale donc t'as des fonctions C tout à fait classique qui de permette de detecter des chiffres des lettres ( sscanf par exemple, etc )

    ex

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char *cmax = strchr((char *)str.GetBuffer(str.GetLength()),'.');
    str etant une CString
    tu démontres l'adage qui dit : pourquoi faire simple quand on peut faire compliquer ...

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 37
    Par défaut
    Merci.
    C'est un peu ce que j'ai fini par faire :
    je suis passé en tableau de char, et j'ai repéré les positions et le nombre de chiffre de ma chaine.

    Merci pour vos réponses

  8. #8
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    Citation Envoyé par Scuz60
    Merci.
    C'est un peu ce que j'ai fini par faire :
    je suis passé en tableau de char, et j'ai repéré les positions et le nombre de chiffre de ma chaine.

    Merci pour vos réponses
    je me demande bien pourquoi puisque si tu travailles avec une CString tu as l'accès [index] ou GetAt(index) disponible...

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 37
    Par défaut
    En fait, j'ai fais une méthode qui me retourne la position et le nombre de digit dans ma chaine.
    Apres, connaissant la position, j'utilise ma_string.Right ou Left pour ne garder que ce qui m'interesse.

    Mon principal probleme était de repérer les digit dans la string.
    Je n'ai pas trouvé de méthodes classique sur les string qui s'occupe de ca.

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

Discussions similaires

  1. [XL-2007] Extraire information d'une liste
    Par guigui69 dans le forum Excel
    Réponses: 5
    Dernier message: 12/09/2014, 22h07
  2. [Mail] Extraire des informations d'une liste
    Par Justin_C dans le forum Langage
    Réponses: 2
    Dernier message: 02/02/2007, 10h00
  3. Extraire des informations d'une page web
    Par lr dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 28/03/2006, 12h38
  4. [RegEx] Extraire des informations d'une requête SQL
    Par XtofRoland dans le forum Langage
    Réponses: 13
    Dernier message: 07/03/2006, 15h59
  5. Extraire informations d'une String
    Par Zapan dans le forum Langage
    Réponses: 8
    Dernier message: 07/01/2006, 20h28

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