RÉCUPÈRE LE PATH D'UN FICHIER

DarkBoss Messages postés 154 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 12 décembre 2008 - 22 août 2004 à 23:19
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 12 août 2007 à 20:59
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/10928-recupere-le-path-d-un-fichier

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
12 août 2007 à 20:59
Très mauvaise habitude à ne pas prendre les static buffer.
Une fonction qui veut se faire remplir un buffer doit le passer en param.
int GetFileDir(char *file, char *pdir)
{
char *c = pdir;
while(*c = *file) {c++; file++;}
while(*c != '\\') c--;
*++c = 0;
return (c - pdir);
}
darkpoulpo Messages postés 76 Date d'inscription lundi 21 mars 2005 Statut Membre Dernière intervention 29 novembre 2009
12 août 2007 à 16:43
strrchr(); pas strrchar(). jme suis trompé en ecrivant
darkpoulpo Messages postés 76 Date d'inscription lundi 21 mars 2005 Statut Membre Dernière intervention 29 novembre 2009
12 août 2007 à 16:42
char *GetFileDir(char *File)
{
static char r[4096] = ".\";

char *t strrchar(nomdefichier,'\\');
if (t) {
*(t+) = '\0';
strncpy(r,nomdefichier,4096);
}

return r;
}
rosco91 Messages postés 20 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 4 juin 2007
5 juin 2007 à 12:07
Je penses que cela aurait été plus simple de mettre ton code entier car beaucoup de choses ne sont pas déclarées. Ton code n'est pas commenter donc pour un débutant c'est du charabia.
DarkBoss Messages postés 154 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 12 décembre 2008
22 août 2004 à 23:45
bon voila en gros g changerai ton code comme cela :
char *GetFileDir(char *File, bool EndSlash)
{
char *Dir=(char*)malloc(1024);
strcpy (Dir, File);
for (int i=strlen(Dir); i>1; i--)
{
if (Dir[i]=='\\')
{
if (!EndSlash) Dir[i]=0;
break;
}
Dir[i]=0;
}
return Dir;
}
DarkBoss Messages postés 154 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 12 décembre 2008
22 août 2004 à 23:28
g fai kelkes modification minimales: g verrai pluto les choz com ca :

char *GetFileDir(char *File, bool EndSlash);
char *GetExePath()
{
GetModuleFileName(NULL,ttmp, 1024);
GetFileDir(ttmp,1);
return ttmp;
}

char *GetFileDir(char *File, bool EndSlash)
{
char *Dir=(char*)malloc(1024);
strcpy (Dir, File);
for (int i=strlen(Dir); i>1; i--)
{
if (Dir[i]=='\\')
{
if (!EndSlash) Dir[i]=0;
}
Dir[i]=0;
}
return Dir;
}
DarkBoss Messages postés 154 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 12 décembre 2008
22 août 2004 à 23:19
g pa bien pig prk tu met tt c parametre... et prk tu met in et out
o lieu de declarer c variables dans ton prog
Rejoignez-nous