Code qui fait rien

Résolu
youpi -  
 youpi -
Bonjour,

J'ai un probleme avec ma fonction caract_speciaux listée ci dessous.
Quand je compile et que j'appelle l'executable, on ne me renvoie pas d'erreur, mais par contre le code ne fait rien.

Normalement la fonction devrait chaque fichier mail_i.txt (mail_1.txt, ...., mail_290.txt), le parcourt et remplace les =E9 dedans par le caractère 'é'. Mais rien de celà n'est fait ... :(

Je ne vois pas d'ou vient le problème.
Merci pour votre aide.

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("/...mon chemin...l/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   Statut Membre Dernière intervention   44
 
il me semblait deja avoir vu ce meme probleme genre hier mais bon...
et si tu fais ça : sprintf(tmp,"sed -i.bak 's/=E9/é/g' %s",NomDuFichier);

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

et pour ça : f=fopen("/...mon chemin...l/NomDuFichier","w+");

ne penses-tu pas avoir un probleme ? NomDuFichier n'est pas interpréter
ce que je te propose c'est de faire un sprintf avant du genre

sprintf(tmp,"/...mon chemin...l/%s",NomDuFichier);
et ensuite
f=fopen(tmp,"w+");

cela fonctionne-t-il ?

bon courage et j'espere t'avoir aider

tchû
0
youpi
 
Je viens d'essayer ce que tu m'as dit et ca ne marche pas. Ca me vide carrement les fichiers mail_i.txt, et ca crée un fichier mail_i.txt.bak mais qui contiennent le texte de départ qui etaient dans les mail_i.txt.

C'et pas grave, de toute facon je laisse tomber cette fonction puisque je viens d'ecrire une fonction qui fait ce que le 'sed' est supposé faire, et qui marche bien.


Merci pour ton aide en tout cas Daronmaster.

A bientot.

P.S: Pour le post en double je suis désolée, j'etais persuadée qu'hier ca n'est pas passé.
0