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 :

Trouver l'emplacement d'un caractère dans une chaine


Sujet :

MFC

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 582
    Points : 218
    Points
    218
    Par défaut Trouver l'emplacement d'un caractère dans une chaine
    Bonjour,
    J'ai regardé dans les FAQ mais je trouve pas une fonction me permettant de trouver la dernière position d'un caractère dans une chaine....

    En fait j'ai le chemin de mon fichier ... (C:/Program Files/Test/test.exe) et je voudrais juste récupérer le dossier (C:/Program Files/Test)

    Merci

  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
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    regarde dans CString: fonction ReverseFind : recherche en partant de la fin
    dans ton cas tu recherches la position du dernier "\" .
    apres utilisation de la fonction Left pour extraction des x premiers caracteres.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 582
    Points : 218
    Points
    218
    Par défaut C bon
    Pour les prochains :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    CString temp ="C:\\Program Files\\Test\\test.exe";
    int pos = temp.ReverseFind('\\');
    CString Dir = temp.Left(pos));
    Merci

  4. #4
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut Re: C bon
    Citation Envoyé par charliejo
    Pour les prochains :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    CString temp ="C:\\Program Files\\Test\\test.exe";
    int pos = temp.ReverseFind('\\');
    CString Dir = temp.Left(pos));
    Merci
    Y'aurait quand même bien à faire un petit test sur la valeur de pos non ?
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  5. #5
    Membre actif
    Inscrit en
    Septembre 2003
    Messages
    391
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 391
    Points : 207
    Points
    207
    Par défaut
    j'aurais fait un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    // char * p; //<- ok, p pointe vers ma chaine
    //...
     
    char *z;
    z=p+strlen(p); // on pointe vers la fin.
    while (z>=p)
    {
      if(*z=='\\') *z=0;
      z--;
    }
    if (z<p) // erreur
    voilà, j'espere que c'est pas trop faux.
    en gros dans p on recupere maintenant ce qu'il y a avant le dernier '\\'.

  6. #6
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    t'es sur ?
    on dirait bien qu'il va contenir du début jusqu'au premier \
    vu que tu remplaces tous les \ par le caractere de fin de chaine

    plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	char *z;
    	z = p+strlen(p); // impose de se servir de strlen, mais c'est pas trop grave
    	while(*z!='\\')
    		z--;
    	*z=0;

  7. #7
    Membre émérite
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Points : 2 747
    Points
    2 747
    Par défaut
    c'est beau mais ca reste du C
    il y a du linge sur la corde à linge

  8. #8
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Si on veut faire du C on fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char *p = strrchr(chaine, '\\');
    if (p != NULL)
      *p = 0;
    la drogue c'est mal, qu'as-tu donc contre le C ?
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  9. #9
    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
    ben comme on est sur un forum VC++ on é un chti peu pro-C++
    et puis kitt à utiliser Visual autant utiliser le C++. on dispose d'un outil évoluer autant s'en servir.

    (ceci n'engage que moi bien entendu)


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

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/05/2015, 20h40
  2. [XL-2007] Emplacement d'un caractère dans une chaîne
    Par laurentSc dans le forum Excel
    Réponses: 4
    Dernier message: 31/05/2013, 16h36
  3. Trouver un caractère dans une chaine de caractère
    Par wassim_boy dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 05/01/2012, 04h36
  4. emplacement d'un caractère dans une chaine
    Par autousto dans le forum Langage
    Réponses: 3
    Dernier message: 20/06/2011, 15h32
  5. Réponses: 6
    Dernier message: 14/08/2007, 16h44

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