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

Signaler
Messages postés
49
Date d'inscription
vendredi 6 mai 2005
Statut
Membre
Dernière intervention
9 février 2007
-
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
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.

5 réponses

Messages postés
1243
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
3 août 2016
1
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]
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
12
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++ (@++)<!--
Messages postés
49
Date d'inscription
vendredi 6 mai 2005
Statut
Membre
Dernière intervention
9 février 2007

...
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.

++
Messages postés
49
Date d'inscription
vendredi 6 mai 2005
Statut
Membre
Dernière intervention
9 février 2007

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.
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
21
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++