Trouver le chemin relatif à partir de chemins absoluts. - Algo - Programmation
Marsh Posté le 30-10-2003 à 12:54:19
Pour le chemin commun (absolu), c'est pas difficile à mon avis. Tu découpes un des 2 chemins à chaque \ (ou / suivant l'OS) avec strtok par exemple.
On compare avec le début de l'autre chemin. Si ça correspond on continue. On découpe, on ajoute au chemin commun et on regarde si ça commence toujours de la même façon.
strncmp(cheminA, chemincommun, sizeof(chemincommun)) par exemple.
Dès que ça correspond plus on est allé trop loin.
Edit : Après relecture je me suis dit que ce n'était pas clair mon explication.
Donc un petit exemple :
chemin A = c: \ blabla \ basard \
cheminC = c:\
identique au début de cheminB
cheminC = c:\blabla
identique au début de cheminB
cheminC = c:\blabla\basard
pas bon. On vire le dernier ajout
Peut être même utiliser des strincmp pour le pb des majuscules/minuscules
Marsh Posté le 30-10-2003 à 12:58:04
Vinx a écrit : Pour le chemin commun (absolu), c'est pas difficile à mon avis. Tu découpes un des 2 chemins à chaque \ (ou / suivant l'OS) avec strtok par exemple. |
Oui, dans ce cas là, j'ai parfaitement compris.
Mais si tu as par exemple :
c:\coucou\truc\machin
et c:\coucou\truc\zob\fichier.jpg
comment obtenir : ../fichier.jpg
Marsh Posté le 30-10-2003 à 12:59:51
Bah ça j'ai pas compris ton truc. C'est le chemin relatif au répertoire d'exécution de ton programme ??
C'est pas ../zob/fichier.jpg dans ton exemple ?
Marsh Posté le 30-10-2003 à 12:43:26
Voili :
J'ai deux chemins :
chemins a = "c:\blabla\basard\
Et
chemin b = "c:\blabla\truc\bloub\coucou\
je veux pouvoir trouver :
c:\blabla\
Mais je veux aussi pouvoir trouver des trucs du genre :
../../coucou/
Quelqu'un a-t-il une idée de la meilleure façon de procéder ?