GetOpenFileName et nom du fichier

goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008 - 14 févr. 2005 à 17:15
cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 - 15 févr. 2005 à 17:40
Salut,

J'utilise GetOpenFileName pour ouvrir des fichiers mais je n'arrive pas à récupérer ensuite le nom du fichier mais sans le chemin.

Par exemple, pour FileName ça me met : c:\répertoire\mon-fichier.txt
Et moi je voudrais seulement : mon-fichier.txt

Pouvez vous m'aider SVP ???

8 réponses

minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 2 décembre 2005 3
14 févr. 2005 à 17:32
Il suffit de faire une boucle qui va prendre tout les caratères de la string après le dernier '\'.

Si tu veux j'ai fait une fonction qui retourne le nombre de fois qu'un
mot se trouve dans une chaine (probablement qu'un fonction simileire
existe déjà, mais je ne le sais pas donc je l'ai fait).

Ensuite à toi de trouver quoi en faire de ce nombre (indice : c'est dans une boucle que je mettrai)

Le CyberMonde nous offre une meilleur qualité de vie
CyberMan.inc The WebSite
0
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
14 févr. 2005 à 18:33
Merci !
Parfois je me demande comment j'y avais pas pensé plutôt ...

J'ai cherché le nombre de '\' et ensuite j'ai fait strtok() en me basant sur ce nombre pour avoir la chaine voulue.

@+++++++++++
0
cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
14 févr. 2005 à 18:39
Plus simple et plus rapide :

char szFile[] = "c:\test\1\ok.txt";
char *c;

c = szFile + strlen(szFile);
while(*c != '\\') c--

MessageBox(GetFocus(), c, "debug", 0x40);

@+
Arnotic,
Admin CS, MVP Visual C++
0
cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
14 févr. 2005 à 18:39
while(*c != '\\') c--;

J'avais oublié le ";"

@+
Arnotic,
Admin CS, MVP Visual C++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 3
14 févr. 2005 à 20:44
Bonsoir,



Il y a aussi GetFullPathName, non ?

Matt...
0
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
15 févr. 2005 à 12:06
Oui mais GetFullPathName me donnera le chemin entier, non ???

Moi je voulais seulement le nom du fichier.
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
15 févr. 2005 à 15:32
Encore plus simple, le membre nFileOffset de OPENFILENAME :


<DT>nFileOffset : Specifies the zero-based offset, in TCHARs, from the beginning of the path to the file name in the string pointed to by lpstrFile. For the ANSI version, this is the number of bytes; for the Unicode version, this is the number of characters. For example, if lpstrFile points to the following string, "c:\dir1\dir2\file.ext", this member contains the value 13 to indicate the offset of the "file.ext" string. If the user selects more than one file, nFileOffset is the offset to the first file name.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/commondialogboxlibrary/commondialogboxreference/commondialogboxstructures/openfilename.asp</DT>
0
cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 3
15 févr. 2005 à 17:40
Bonsoir,



DWORD GetFullPathName(
  

    LPCTSTR lpFileName,

    DWORD nBufferLength, 

    LPTSTR lpBuffer, 

    LPTSTR *lpFilePart 
// pointer to filename in path

);



Ca te donne le pointeur sur le nom du fichier dans le chemin (cf MSDN),


Matt...
0
Rejoignez-nous