Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Candidat au titre de Membre du Club
    Homme Profil pro quentin rausch
    Étudiant
    Inscrit en
    juin 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Nom : Homme quentin rausch
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : juin 2012
    Messages : 22
    Points : 10
    Points
    10

    Par défaut Ouvrir un nouveau fichier lors du même Event

    Bonjour à tous,

    j'ai crée une interface graphique qui affiche les données provenant d'une carte.
    Ce que je souhaiterais faire à présent est lorsque j'appuie sur une touche, le programme il m'enregistre un fichier "data_1.txt" et si j'appuis de nouveau sur la même touche il m'enregistre un fichier "data_2.txt" etc..

    Mon événement est de la sorte:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    int x = 1;
     
    if (Press key)
    {
    x++;
    Save_Data (&x);
    Print_Signal();
    }
    avec
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Save_Data(int *x)
    {
    FILE *fpdata;
    char  nom[25];
    sprintf(nom, "%d", x);
    fpdata = fopen("nom.txt","w"); //
    for (i =0 ; i< MAX ; i++) fprintf(fpdata, "%f", result[i]);
    fclose(fpdata);
    }
    Il doit y avoir une astuce, mais je ne l'ai pas encore trouvée, c'est la raison pour laquelle je me tourne vers vous.

    Merci

  2. #2
    Membre habitué
    Inscrit en
    avril 2011
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : avril 2011
    Messages : 55
    Points : 129
    Points
    129

    Par défaut

    1. tu utilise la chaine en dure "nom.txt" plutot que ta variable nom.

    2. sprintf(nom, "%d", x); devrait plutot être sprintf(nom, "data_%d.txt", x);
    Actuellement nom contient juste la valeur de x sous forme chaine.

    3. c'est plus accéssoire mais x n'a pas besoin d'être passer par pointeur. Tu ne modife pas x dans Save_Data et x est un bête int pas une grosse structure qui pourrait nécéssiter d'être passer par adresse.

    Bon je m'excuse pour tout ce que j'aurais pu louper ça bien longtemps que je n'ai plus fait de C.

  3. #3
    Candidat au titre de Membre du Club
    Homme Profil pro quentin rausch
    Étudiant
    Inscrit en
    juin 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Nom : Homme quentin rausch
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : juin 2012
    Messages : 22
    Points : 10
    Points
    10

    Par défaut

    bonjour, alors j'ai modifié le code comme vous m'avez indiqué.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    int x = 1;
     
    if (Press key)
    {
    Sava_Data (x)
    PrintSignal();
    x++;
    }

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sava_Data(int x)
    {
      FILE  * fpdata;
      char nom[20];
      sprintf(nom, "data_%d.txt", x);
      fpdata = fopen(nom, "w");
      for ()..
      fclose(fpdata);
    }

    et cela fonctionne très bien, merci beaucoup et bonne journée.

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •