Extraire le chemin du répertoire parent d'un répertoire [Résolu]

Messages postés
49
Date d'inscription
vendredi 6 mai 2005
Dernière intervention
9 février 2007
- - Dernière réponse : BruNews
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
- 9 févr. 2007 à 21:37
Bonjour. J'ai besoin de faire quelque chose et je ne sais pas comment.
Je dispose de l'adresse d'un répertoire : "/home/mon_nom/a/b"
Et je souhaite en extraire la chaine contenant le repertoire parent soit " /home/mon_nom/a"
Savez-vous comment je peux faire celà ?

Merci pour votre aide.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
1244
Date d'inscription
jeudi 31 mars 2005
Dernière intervention
3 août 2016
1
3
Merci
ben tu te positionne en fin de chaine, puis tu boucle vers le début tant que tu n'a pas atteint le 1er '/' , une fois que tu es dessus , tu le remplace par 0 (0 de fin de chaine.) tout simple non?

++
deck_bsd
___________________________________
[http://deck-bsd.eurower.net]

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de deck_bsd
Messages postés
3213
Date d'inscription
lundi 7 novembre 2005
Dernière intervention
16 février 2009
10
0
Merci
Pas besoin de reculer à la fin de la chaine. Suffis de pointer le dernier \\ rencontré et de le remplacer par un 0:

char *GetFilePath (char *path)
{
    char *d = path;
    if(!path || !*path) return 0;    do if(*path '\\') d path; while(*++path);
    *d = 0;
    return d; // pointeur sur fin de chaine
}

C++ (@++)<!--
Commenter la réponse de SAKingdom
Messages postés
49
Date d'inscription
vendredi 6 mai 2005
Dernière intervention
9 février 2007
0
Merci
...
Je le sais que parfois je peux être con mais à ce point, quand même !! :D
J'ai essayé des trucs trop bizarres qui prenaient trop la tete avec des strtok et des strcat alors que ça ne prenait que 2 lignes.

Merci beaucoup, je crois qu'il faut que je fasse un petit free(ma_tete) là. Je dois avoir trop de trucs dans le cerveau.

++
Commenter la réponse de chandler8692
Messages postés
49
Date d'inscription
vendredi 6 mai 2005
Dernière intervention
9 février 2007
0
Merci
Merci SaKingdon mais il s'avère que ta solution est quand même à peine plus longue en terme de lignes et qu'elle est un peu plus compliquée aussi. Mais merci en tout cas.
Commenter la réponse de chandler8692
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
34
0
Merci
Rien de compliqué, sont toutes les 2 des méthodes par pointeur qu'on déplace.
La 1er a 2 boucles sans saut.
La 2eme est en 1 boucle mais avec un saut interne.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.