Programmation

Résolu
mathias93100 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
mouradinfo Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je suis actuellement en stage et je dois créer un programme en C qui affiche grace a la commande telnet la frequence recu. le programme marche tres bien mais je dois enregistrer les differentes frequence dans un fichier texte et je n y arrive pas. la frequence est calculée a partir d'une lame mise en oscillation branchée sur le pic AD7870. est il possible a partir du programme dans le pic qu il crée un fichier texte et enregistre les valeur dedans.

voici le programme que j'ai fait pour enregistrer les donnée:

int Creer_txt()
{
FILE *fichier_resultat;
fichier_resultat = fopen("C:\\fichier_resultat.xls ","w");
fputs ("%d", Frequence);
fclose(fichier_resultat);
return 0;
}

merci de m'aider

9 réponses

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
houlà que de supposisitons !
déjà, il faut bien le double anti slach rap trap, sinon, le f sera considérer comme un caractère particulier à interpréter.
int Creer_txt()
{
FILE *fichier_resultat;
fichier_resultat = fopen("C:\\fichier_resultat.xls ","w");// tu effacera le précédent fichier à chaque apel de la fonction
fputs ("%d", Frequence); // il manque l'endroit ou écrire non ? Attention à frequence en global aussi.
fclose(fichier_resultat);
return 0;
}
Voila ce que je te propose :
int Creer_txt(int Frequence)
{
    FILE *fichier_resultat;
    fichier_resultat = fopen("C:\\fichier_resultat.xls ","a");
    if(fichier_resultat==0)return -1;
    fprintf(fichier_resultat,"%d ", Frequence);
    fclose(fichier_resultat);
    return 0;
} 
1
rap trap
 
je voi pas ce qui cloche. a moins que...

remplace la 2iem ligne de ta fonction par :

fichier_resultat = fopen("C:\fichier_resultat.xls ","w");
0
Dinheru Messages postés 1019 Date d'inscription   Statut Membre Dernière intervention   67
 
Bonjour,

Je pense que ton code est bon mais est-il normal que tu veuilles écrire dans un fichier avec une extention .xls ?
0
mich62120 Messages postés 631 Date d'inscription   Statut Membre Dernière intervention   6
 
Salut

Est ce que Fréquence est déclarée en globale sinon il faut la passer en paramètre dans ta fonction.
Tu devrai l'ouvrir en ajout si tu veux mettre toutes tes valeurs:
"a"
.

Contrairement à "w" qui efface " a " écrit au bout et créer si le fichier n'existe pas.
Apparemment tu peux enlever le int de début de fonction et mettre void pour te débarrasser du return inutile, ou t'en servir pour renvoyer une valeur qui te dira si l'écriture dans le fichier est réussie

Mich
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kazouu Messages postés 466 Date d'inscription   Statut Membre Dernière intervention   12
 
je pense que

fichier_resultat = fopen("C:\fichier_resultat.xls ","w");

ne peut pas marcher ouvre ton fichier .xls avec le bloc note et tu comprendra pourquoi
0
mathias93100 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
merci beaucoup pour vos aides ,
je vais faire les modifications est je vous tiens au courant
merci
0
mathias93100 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
je viens d'essayer les modifications et ca ne marche toujours pas.
est ce qu'il faut une librairie spéciale pour fprint parcequ'il me met une erreur.

est ce que dans ma fonction principale je dois rappelé la fonction creer_txt comme ceci

void main ()
{
creer_txt();
}
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
oui, pour fprintf(), il faut <sdtio.h>.
Si on reprend ta fonction, et exepté qu'il faut un "C" majuscule à "creer" : oui.
Dans le cas de la fonction que je te propose, il faut appeler comme suis :
Creer_txt(a); où "a" est la fréquence que tu veux enregistré.
Là, je te donne des réponses en C standard, je ne sais pas si tu peux créer un fichier sur un PIC, le souci viens peut être de là.
0
mouradinfo Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   6
 
le chemin et normalemnt faux,il faut pas copier coller de l'adresse de widows
donc changer le chemin
fopen("c:\...........\................\...........`..............\.............\.......","w");
w:supprimer l'encien contenu.
a:ajouter au fichier au dernier.




bon courage
0