IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Sauvegarder des fichiers de mesure dans un fichier txt


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 28
    Par défaut Sauvegarder des fichiers de mesure dans un fichier txt
    Bonjour;
    je voudrais sauvegarder les résultas de mesures à partir d'un analyseur de spectre en fonction de trois paramètres différents: deux positions (x,y) et la fréquence.
    j'ai fait un premier programme qui permet de faire la sauvegarde des données dans un fichier pour chaque fréquence comme suit:
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (i=0;i<nb_freq;i++) % nb_freq étant le nombre de fréquences
    	{
    		fichier=fopen(,"mesure_xy%d.txt","wt",i);
    		fprintf(fichier,"x\ty\\tvaleur\n");
    		fclose(fichier);
    	}

    les données sauvegardées pour chaque fréquence ont cette forme: (exemple x=1:3; y=1:3
    x y valeur1
    0 0 xxxxx
    1 0 xxxxx
    2 0 xxxxx
    3 0 xxxxx
    0 1 xxxxx
    1 1 xxxxx
    2 1 xxxxx
    3 1 xxxxx
    0 2 xxxxx
    1 2 xxxxx
    2 2 xxxxx
    3 2 xxxxx
    0 3 xxxxx
    1 3 xxxxx
    2 3 xxxxx
    3 3 xxxxx

    je voudrais améliorer ce programme pour faire une sauvegarde dans un seul fichier pour toutes les fréquences comme suit: (exemple pour 4 fréquences)
    x y valeur1 valeur2 valeur3 valeur4
    0 0 xxxxx xxxxx xxxxx xxxxx
    1 0 xxxxx xxxxx xxxxx xxxxx
    2 0 xxxxx xxxxx xxxxx xxxxx
    3 0 xxxxx xxxxx xxxxx xxxxx
    0 1 xxxxx xxxxx xxxxx xxxxx
    1 1 xxxxx xxxxx xxxxx xxxxx
    2 1 xxxxx xxxxx xxxxx xxxxx
    3 1 xxxxx xxxxx xxxxx xxxxx
    0 2 xxxxx xxxxx xxxxx xxxxx
    1 2 xxxxx xxxxx xxxxx xxxxx
    2 2 xxxxx xxxxx xxxxx xxxxx
    3 2 xxxxx xxxxx xxxxx xxxxx
    0 3 xxxxx xxxxx xxxxx xxxxx
    1 3 xxxxx xxxxx xxxxx xxxxx
    2 3 xxxxx xxxxx xxxxx xxxxx
    3 3 xxxxx xxxxx xxxxx xxxxx

    Quelqu'un peut-il m'aider svp.
    noter que les données sont extraites à partir d'un programme constitué de 3 boucles:
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i=1:length(x)
        for j=1:length(y)
            for k=1:length(frequences)

  2. #2
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Suit le schéma suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for i=1:length(x)
        for j=1:length(y)
            Ecrire  x 'blanc' y
            for k=1:length(frequences)
                Ecrire  'blanc' frequence(x,y,k)
            Ecrire  'fin de ligne'
    Fermer le fichier

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 28
    Par défaut
    voici le programme écrit pour la sauvegarde sous la première forme : 1 fichier par fréquence:

    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    	for (i=0;i<=length_x_1;i++)
    		{//Boucle sur l'axe des X  (position X du capteur )
     
    			for (j=0;j<=length_y;j++)
    				{//Boucle sur l'axe des Y       (position Y du capteur )
     
    					//Boucle sur les fréquences
    					for (k=0;k<nb_freq;k++)       
    						{
    							//Mesure avec l'analyseur de spectre
    							sprintf(write_buffer,"CF %fHZ;",tab_freq[k]);
    							gpibWrite(analyseur,write_buffer); 
     
    							sprintf(write_buffer,"TS;MKPK HI;MKA?"); //Peak high Amplitude  
    							gpibWrite(analyseur,write_buffer); 
    							Delay(1);
    							ibrda (analyseur, read_buffer, 100);
    							while (!(ibsta & CMPL))
    								{
    									ibwait(analyseur,0);
    									ProcessSystemEvents ();
    								}
     
    							valeur_mesuree=atof(read_buffer);   // valeur mesurée pour chaque fréquence tab_freq[i] et chaque position du capteur (x,y)
     
    							sprintf(tampon,"mesure_xy%d.txt",k);  // ouverture d'un fichier de sauvegarde des résultats pour chaque fréquence
    							fichier=fopen(tampon,"at");
    							fprintf(fichier,"%f\t%f\t%e\n",x,y,valeur_mesuree);
    							fclose(fichierf);
    						}  // Fin de la boucle des fréquences  	
     
    				}  // Fin de la boucle sur Y 	
    		} // Fin de la boucle sur X


    je voudrais le modifier pour faire une sauvegarde au format cité au-dessus: une seul fichier pour toutes les fréquences

  4. #4
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Suit le schéma suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Ouvrir le fichier "mesure_xy.txt"
    for i=1:length(x)
        for j=1:length(y)
            Ecrire  x 'tab' y  // fprintf(fichier,"%f\t%f",x,y);
            for k=1:length(frequences)
                Lire la donnée valeur_mesuree
                Ecrire  'tab' valeur_mesuree // fprintf(fichier,"\t%e",valeur_mesuree);
            Ecrire  'fin de ligne' // fprintf(fichier,"\n");
    Fermer le fichier

  5. #5
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Je ne suis pas sur que tu explique bien ton problème :

    • As tu dans un même programme les 4 valeurs accessible en même temps ;
    ou
    • Veux tu à partir des 4 fichiers enregistrer en créer un cinquième regroupant toutes les infos.


    Le premier cas est très simple, la solution déjà donnée.

    Le second un peu plus complexe car il oblige à aller lire les 4 fichiers déjà enregistrés.
    Pour lire un fichier formaté, la fonction fscanf est bien pratique.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 28
    Par défaut
    merci pour vos réponses, le problème est résolu en suivant l'approche suggérée par diogene

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

Discussions similaires

  1. Recherche dans un fichier impossible enregistré dans un fichier
    Par cdjkhdjlhxjklnjskznj dans le forum Langage
    Réponses: 19
    Dernier message: 03/12/2014, 00h09
  2. Changer des chaînes de caractères dans un fichier
    Par troumad dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 10/11/2006, 08h45
  3. Réponses: 3
    Dernier message: 20/09/2006, 11h05
  4. [MySQL] Sauvegarde de base de données dans un fichier
    Par navis84 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 15/04/2006, 11h41
  5. [Stratégie]Sauvegarde d'une liste chainée dans un fichier
    Par BernardT dans le forum Général Java
    Réponses: 17
    Dernier message: 25/07/2005, 17h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo