Programmation

Résolu
mathias93100 Messages postés 5 Statut Membre -  
mouradinfo Messages postés 32 Statut Membre -
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
Configuration: Windows XP
Internet Explorer 6.0

9 réponses

  1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    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
  2. 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
  3. 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
  4. mich62120 Messages postés 636 Statut Membre 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. kazouu Messages postés 466 Statut Membre 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
  7. mathias93100 Messages postés 5 Statut Membre
     
    merci beaucoup pour vos aides ,
    je vais faire les modifications est je vous tiens au courant
    merci
    0
  8. mathias93100 Messages postés 5 Statut Membre
     
    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
  9. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    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
  10. mouradinfo Messages postés 32 Statut Membre 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