Posez votre question Signaler

Code qui marche pas ...

Youpi - Dernière réponse le 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;
}
Lire la suite 

Code qui marche pas »

Suggestions
1 réponses
Réponse
+0
moins plus
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û
Ajouter un commentaire
Ce document intitulé « code qui marche pas ... » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook