Prendre en compte caractères spéciaux

Xbaradur -  
 pseudo=) -
Bonjour,

J'ai un soucis au niveau d'un code. Celui-ci ne prend pas en compte les caractères spéciaux : par exemple si nick = bla-bla et que bla-bla est présent dans mon dossier (RESA_PATH) il ne va pas le trouver.
Si quelqu'un pouvait m'aider svp .. Merci d'avance !

static int resa_is_reg(const char *nick)
{
FILE *fp;
char base_path[1024] = RESA_PATH;
int res = 0;

resa_do_filename(nick, base_path + sizeof(RESA_PATH) -1);
strcat(base_path, "/Password.txt");

if((fp = fopen(base_path, "r")))
{
res = 1;
fclose(fp);
}
return res;
}

Cdt.
A voir également:

5 réponses

pseudo=)
 
Bonjour peux etre un peux trop tard mais pour le - il faut le remplacer par %137
le _ par %055 ,le [ par %133 et le ] par %135
1
dandypunk Messages postés 838 Statut Membre 83
 
Le problème vient de l'underscore (_) certains compilateurs voire certaines plates-formes ne le reconnaissent pas. L'idéal, si bien entendu tu est administrateur est de renommer ton répertoire RESA_PATH (par exemple en ResaPath.)
0
Xbaradur
 
Ok merci de ta réponse ! Mais en fait RESA_PATH c'est qu'une " variable " du nom du dossier dans lequel ce trouve les dossier (qui varie salon ce qu'on envoit) *nick
Dans le style, si Resa_Path = Dossier1 et *nick = bla-bla
/Dossier1/bla-bla/Password.txt -> et en fait, ca ne trouve pas le dossier bla-bla quand celui-ci contient un - ou _ ou ] ou encore [.
Donc voilà, si quelqu'un avait une réponse svp !
Merci d'avance !

Cdt
0
dandypunk Messages postés 838 Statut Membre 83
 
Sans vouloir me répéter, c'est un question de nom de répertoire, qui n'est pas toujours reconnu.
Eventuellement essayes de passer par les caractères ASCII pour -, _, ....
0

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

Posez votre question
Xbaradur
 
D'accord ! Merci bien :)
0