Accueil > Forum > > > > Extraire à partir d'un chemin complet de fichier seulement le nom ... ?
Extraire à partir d'un chemin complet de fichier seulement le nom ... ?
vendredi 17 février 2006 à 11:19:25 |
Extraire à partir d'un chemin complet de fichier seulement le nom ... ?

julien_boss
|
Bonjour tout le monde donc la question est pas compliqué je pense, j'ai un chemin du style " C:\temp\file.cpp", et je veux juste "file" Je suppose que ca doit pas etre bien compliqué, en tout cas sur les sources données ici j'ai rien trouvé de très convaincant. J'ai essayé de le faire moi meme en reprennant le modèle d'une source qui retirait juste le répertoire, mais sans grand succès... en gros, existerait-il une fonction, dans l'API, ou autre part ? Ou encore faite si gentillement par vous ?  Merci
|
|
vendredi 17 février 2006 à 11:35:52 |
Re : Extraire à partir d'un chemin complet de fichier seulement le nom ... ?

buno
|
Tu pars de la fin de ta chaine de caractères et tu rechercher un point "." Ensuite, tu continue à remonter jusqu'au slash "\" Le nom de ton fichier est compris entre les 2 pointeurs. Ceci est la méthode générale. Quel langage utilises-tu? Buno ---------------------------------------- L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai... Le site de mon mariage
|
|
vendredi 17 février 2006 à 11:50:39 |
Re : Extraire à partir d'un chemin complet de fichier seulement le nom ... ?

julien_boss
|
Le C++, ou C, enfin je n'y vois pas de différence, ici en tout cas ; et je code sous Dev-C++
J'ai essayé une fonction que voici :
char * ExtractFileName(char * szFileName) { char buf[264]; char *c, *b; c = szFileName; b = buf; while(*c != '.')c++; if(*c == '.') { while(*c != '\\')c--; if(*c == '\\') { c++; while(*b = *c){c++; b++;} while(*b != '.') b--; *b = 0; } } cout << buf << endl; return buf; }
Elle marche, ou du moins, la ligne en rouge marche, mais à l'intérieur de la fonction seulement. Dés que j'essaie de retourner la valeur du buffer, soit ca m'affiche un as de pique (??), soit la première ligne si je change : char * ExtractFileName(char * szFileName) en char ExtractFileName(char * szFileName) et : return buf; en return * buf;
Je ne comprends pas bien ces changements je l'avoue, j'ai juste bidouiller pour voir si ca marche, mais non... Alors comment faire pour retourner le buffer ? Je ne pense pas qu'il y ait d'erreurs dans mon code
|
|
vendredi 17 février 2006 à 11:58:08 |
Re : Extraire à partir d'un chemin complet de fichier seulement le nom ... ?

Zootella
|
char buf[264];
buf n'est plus valide quand la fonction se termine.
soit tu met en static soit tu alloue avec malloc.
|
|
vendredi 17 février 2006 à 12:02:17 |
Re : Extraire à partir d'un chemin complet de fichier seulement le nom ... ?

buno
|
Je préfère la méthode de passer la chaine de retour en paramètres: void ExtractFileName(char * path, char * file); en ayant pris soin d'allouer file avant d'entrer dans la fonction Buno ---------------------------------------- L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai... Le site de mon mariage
|
|
vendredi 17 février 2006 à 12:06:02 |
Re : Extraire à partir d'un chemin complet de fichier seulement le nom ... ?

julien_boss
|
Et aussi, c'est normal que le compilateur me signal l'erreur "Missing terminating ' character" quand je mets :
while(*c != '\')c--; if(*c == '\')
au lieu de :
while(*c != '\\')c--; if(*c == '\\')
?
|
|
vendredi 17 février 2006 à 12:09:36 |
Re : Extraire à partir d'un chemin complet de fichier seulement le nom ... ?

BruNews
|
'\' est carac d'échappement, faut le doubler ciao... [ Lien ]BruNews, MVP VC++
|
|
vendredi 17 février 2006 à 12:13:09 |
Re : Extraire à partir d'un chemin complet de fichier seulement le nom ... ?

julien_boss
|
Oui en static ca marche, merci beaucoup ! Montenant pour mon histoire slashes s'il vous plait ? sans trop vous bruscer bien sur hein
|
|
vendredi 17 février 2006 à 12:16:04 |
Re : Extraire à partir d'un chemin complet de fichier seulement le nom ... ?

julien_boss
|
J'avais pas vu ta réponse BruNews dsl, oui je l'ai fait doubler, mais est-ce normal que le chemin complet de mon fichier doit lui aussi avoir à chaque fois des double slashe ? comme ca : "C:\\mes docs\\musique\\machin.mmm" et que ca bugge quand je n'en met qu'un chaque fois ?
|
|
vendredi 17 février 2006 à 12:20:12 |
Re : Extraire à partir d'un chemin complet de fichier seulement le nom ... ?

BruNews
|
Toujours doublé dans une constante, c'est un caractère d'échappement comme dit plus haut. ciao... [ Lien ]BruNews, MVP VC++
|
|
Cette discussion est classée dans : fichier, partir, chemin, extraire, complet
Répondre à ce message
Sujets en rapport avec ce message
charger un fichier sans indiquer le chemin complet ? [ par Batman60 ]
salutcomment faire pour accéder à un fichier sans mentionner le chemin complet?le but c'est de pouvoir placer l'exe qui contient ce code n'importe ou
COPIE DE FICHIER SANS INDIQUER LE CHEMIN COMPLET [ par Batman60 ]
Bonjourje voudrais copier et renommer un fichier vers un dossier sans indiquer le chemin complet pour pouvoir placer le dit dossier n'importe où sur l
[fopen] Probleme avec les chemin complet [ par Ilsundal ]
Bonjour a tous,je rencontre un soucis avec la commande fopen pour ouvrir un fichier binaire sous Windows. Quand j'utilise le chemin relatif pour accéd
Comment extraire des informations à partir d'un fichier XML ? [ par boualiasma ]
Bonjour, Je suis entrain de programmer en C avec Visual studio 2008 sous Windows XP. Je voudrais extraire des informations à partir d'un fichier XML
extraire le nom d'un fichier de son chemin d'accés [ par johnASP ]
salut, J'utilise le logiciel Microsoft Visual Studio en C++ .Net . Je souhaiterai pouvoir ouvrir un fichier .txt présent dans mon ordinateur pour l'a
Récuperer le chemin complet d'un fichier avec OpenFileDialog en C++.Net [ par johnASP ]
Bonjour, Je travail sous Visual Studio v.2005. Je voudrais, aprés l'ajout d'un fichier via la fonction "openFileDialog", récupérer le chemin d'accés
lecture à partir d'un fichier binaire qui contient des structures [ par miss_poopoucy ]
Bonjour, j'ai un petit problème au niveau de la récupération des structures (Etudiant) enregistrées dans un fichier binaire ,pour les charger ensuite
Fichier [ par isbou1 ]
Bonjour, Comment en c ou en c++ sous windows je peux demander à un utilisateur le chemin d'un fichier(.jpg,png...) et ensuite stocker ce chemin dans u
Extraire une image d'un fichier MP3 [ par patevrard ]
Bonjour Je souhaite savoir comment atteindre et extraire une image dans un fichier MP3 en C++ ? Quel tag ? Merci beaucoup
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|