comment extraire le filename d'un chemin en C - C++ - Programmation
Marsh Posté le 12-03-2003 à 17:38:36
pour l'instant je pars en codant ca : 
1 parcourir la chaine et detecter le dernier emplacement d'un '\' 
2 reparcourir en copiant de '\'+1 jusqu'a la fin 
mais n'hesitez pas a proposer mieux !
Marsh Posté le 12-03-2003 à 17:43:20
y'a un moyen simple: 
 
http://msdn.microsoft.com/library/ [...] itpath.asp
Marsh Posté le 12-03-2003 à 17:50:41
si t'es en C++Builder : ExtractFileName
Marsh Posté le 12-03-2003 à 17:51:20
oui, mais j'avais oublier de preciser que je devais produire un code multiplateforme. 
du coup, j'ai fait ca 
 
| Code : 
 | 
 
 
c'etait pas si dur... 
merci
Marsh Posté le 12-03-2003 à 17:53:07
Heu ca va foirer si tu as un fichier avec un "\" dans son nom sous Linux 
Et ne me dites pas que ce n'est pas possible, j'ai testé : 
http://www.antp.be/test/backslash/ 
Marsh Posté le 12-03-2003 à 17:56:20
"Heu ca va foirer si tu as un fichier avec un "\" dans son nom sous Linux" 
ha oui, j'avais pas pensé a ca... 
ben...je crois qu'il ne me reste plus que les directives de compilation.
Marsh Posté le 12-03-2003 à 17:57:28
C'est ce que Borland a fait pour le ExtractFileName de C++Builder/Delphi/Kylix 
Marsh Posté le 12-03-2003 à 18:15:24
pour info, la version finale. 
 
| Code : 
 | 
 
 
Qu'est se qui est passé dans la tete de billou le jour ou il a choisit le '\' plutot que le '/' ?
Marsh Posté le 12-03-2003 à 18:20:27
t'es sur de toi pour splitpath ? 
 
man splitpath me retourne rien, dans quel include je trouve ca ?
Marsh Posté le 12-03-2003 à 18:24:26
sous visual ou borland, dans l'objet string, y a pas un stringtokenizer?
Marsh Posté le 12-03-2003 à 18:25:14
et man _splitpath ?
Marsh Posté le 12-03-2003 à 18:27:19
| djok_fb a écrit : sous visual ou borland, dans l'objet string, y a pas un stringtokenizer?  | 
 
 
Aucune idée, j'utilise GCC et du C ANSI.
Marsh Posté le 12-03-2003 à 18:28:04
bizarre splitpath je l'ai toujours eu sous dos que ce soit du TC/BC/WatcomC.
Marsh Posté le 12-03-2003 à 18:28:24
ReplyMarsh Posté le 21-03-2003 à 06:44:04
| Citation : for (cpt=0;cpt<strlen(path);cpt++) | 
Parcours complet à chaque tour de boucle... Ce truc m'a toujours fait marrer. 
 
| Code : 
 | 
 
/ est un séparateur aussi sous windows.
Marsh Posté le 12-03-2003 à 17:37:26
tout est dans le sujet, par exemple :
en entrée j'ai "c:\truc\machin\pouet.txt"
en sortie j'aimerai donc "pouet.txt"
y'a un moyen simple de faire ca ?
merci