Code qui marche pas ...

Youpi -  
daronmaster Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'aurai besoin d'aide sur un petit code.

La fonction caract_speciaux ci dessous est supposé ouvrir un dossier qui contient plusieurs fichiers mail_1.txt, mail_3.txt, ..., mail_290.txt , appliquer l'instruction bash "sed -i.bak 's/=E9/é/g' NomDuFichier" qui remplace les =E9 par 'é' dans ces fichiers...mais quand j'exectue ca ne me fait rien du tout (et ca renvoie pas d'erreurs). :( je comprends pas d'ou vient le probleme.Est ce que queqluq un pourrait m'indiquer l'erreur ?
Merci

La fonction est la suivante:

int caract_speciaux(void){

int i;

FILE* f;

char NomDuFichier[255];
char tmp[255];

for(i=1;i<290;i++){

sprintf(NomDuFichier,"mail_%d.txt",i); // NomDuFichier <-- "mail_i.txt"

f=fopen("/...monchemin.../NomDuFichier","w+");

sprintf(tmp,"sed -i.bak 's/=E9/é/g' NomDuFichier");
system(tmp);

}
return 0;

}
Configuration: Linux
Firefox 2.0.0.14

1 réponse

  1. daronmaster Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   44
     
    si je comprend bien tu lance une commande system effectuant des modif dans le fichier passé en parametre ?

    pourquoi fais tu cela : sprintf(tmp,"sed -i.bak 's/=E9/é/g' NomDuFichier");

    ne serait-ce pas cela ? -> sprintf(tmp,"sed -i.bak 's/=E9/é/g' %s", NomDuFichier);

    et s'il existe encore un probleme peut etre est-ce du à d'eventuels verrou poser par ton programme en ecriture enfin regarde d'abord ce que je t'ai mis et reviens voir ce qu'il en ai...

    tchû
    0