Prendre en compte caractères spéciaux

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.
Configuration: Windows Vista
Firefox 2.0.0.11

5 réponses

  1. 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
    1. 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
      1. 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
        1. 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