Trouver le chemin relatif à partir de chemins absoluts.

Trouver le chemin relatif à partir de chemins absoluts. - Algo - Programmation

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 ?  :)

Reply

Marsh Posté le 30-10-2003 à 12:43:26   

Reply

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


Message édité par Vinx le 30-10-2003 à 12:57:42

---------------
Slack powa | http://www.racingpneu.com
Reply

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


 
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

Reply

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 ?


---------------
Slack powa | http://www.racingpneu.com
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed