Code qui marche pas ...

Fermé
Youpi - 2 juin 2008 à 17:52
daronmaster Messages postés 326 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 11 mai 2009 - 2 juin 2008 à 18:55
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;

}
A voir également:

1 réponse

daronmaster Messages postés 326 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 11 mai 2009 44
2 juin 2008 à 18:55
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