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
21041
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
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
19
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;
}
Afficher les 7 commentaires