Le traitement des données est une tâche importante pour de nombreuses applications. Une des méthodes les plus courantes pour enregistrer des données est le format CSV (Comma Separated Values). Ce format est très pratique car il permet de stocker des données sous forme de tableau, ce qui facilite leur analyse et leur manipulation. Dans ce tutoriel, nous allons voir comment enregistrer des données à intervalle régulier dans un fichier texte au format CSV à l’aide du logiciel Processing.
Processing : Fichiers : Enregistrer des données à intervalle régulier dans un fichier texte au format CSV
Explication
- Ce programme utilise un objet PrintWriter que l’on initialise avec un fichier existant ce qui va permettre d’ajouter les données au fichier sans l’effacer lors de la création comme le ferait l’instruction createWriter()
- Un message est écrit dans le fichier à intervalle régulier, posant la base du datalogging avec stockage dans un fichier texte. Le format des données est ici « CSV like » ce qui permet de les utiliser immédiatement dans un tableur par simple copier-coller.
Ressources utiles
- Aucune
Le programme
// généré avec le générateur de code Processing
// du site www.mon-club-elec.fr
// par X. HINAULT – tous droits réservés
// Programme écrit le : 7/9/2011.
// ——- Licence du code de ce programme : GPL v3—–
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License,
// or any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
/////////////// Description du programme ////////////
// XXXXXXXXXXXXXXXXXXXXXX ENTETE DECLARATIVE XXXXXXXXXXXXXXXXXXXXXX
// inclusion des librairies utilisées
// déclaration objets
//—- pour écriture dans fichier texte
PrintWriter output = null; // initialise un objet PrintWriter pour stocker le flux de donnée à écrire dans le fichier
String cheminAbsoluFichier=« /home/hinault/Bureau/trans/datalog.txt »;
// le fichier doit exister – chemin entier obligatoire
// déclaration variables globales
int second0=second();
// XXXXXXXXXXXXXXXXXXXXXX Fonction SETUP XXXXXXXXXXXXXXXXXXXXXX
void setup(){ // fonction d’initialisation exécutée 1 fois au démarrage
// — initialisation des objets et fonctionnalités utilisées —
//—– ouvre le fichier de datalogging texte —
output=ouvreFichier(cheminAbsoluFichier); // ouvre le fichier existant dans un PrintWriter
//le fichier doit exister – chemin entier obligatoire
output.println(« ———— Debut Nouvel enregistrement ————-« ); // Ajoute la ligne au fichier
output.print(day()+« / »+month()+« / »+year()+« ; »); //Ecrit la date dans le fichier suivi ;
output.println(hour()+« : »+minute()+« : »+second()+« ; »); // Ecrit l’heure dans le fichier
output.println(« ———— Format CSV ————-« ); // Ajoute la ligne au fichier
output.println(« Jour/mois/annee; heure:minutes:secondes; valeur; »); // Ajoute la ligne au fichier
} // fin fonction Setup
// XXXXXXXXXXXXXXXXXXXXXX Fonction Draw XXXXXXXXXXXXXXXXXXXX
void draw() { // fonction exécutée en boucle
if (second()>second0) { //si une seconde de passée
second0=second(); //réinitialise second0
//—– Code type pour datalogging dans fichier texte —
//Ecriture d’une ligne dans le fichier au format « Jour/mois/annee; heure:minutes:secondes; valeur; »
output.print(day()+« / »+month()+« / »+year()+« ; »); //Ecrit la date dans le fichier suivi ;
output.print(hour()+« : »+minute()+« : »+second()+« ; »); // Ecrit l’heure dans le fichier
output.print(000); // Ecrit la valeur dans le fichier
output.println(); // Ajoute saut de ligne
output.flush(); // Ecrit les données du PrintWriter dans le fichier
} // fin if second()> second0
// while(true); // stoppe boucle draw
} // fin de la fonction draw()
// XXXXXXXXXXXXXXXXXXXXXX Autres Fonctions XXXXXXXXXXXXXXXXXXXXXX
//—– Fonction ouvre Fichier—
PrintWriter ouvreFichier( String cheminAbsoluFichier) {
// ouvre le fichier existant dans un PrintWriter- le fichier doit exister – chemin entier obligatoire
// adapté de la source suivante : http://processing.org/discourse/yabb2/YaBB.pl?num=1267767630
PrintWriter pw=null;
try //obligé ici…
{
// ouvre le fichier existant – le fichier doit exister – chemin entier obligatoire
pw = new PrintWriter(new BufferedWriter(new FileWriter(cheminAbsoluFichier, true))); // true means: « append »
}
catch (IOException e)
{
// Report problem or handle it
}
return (pw); // renvoie l’objet pw
} // fin de ouvreFichier
//XXXXXXXXXXXXXXXXXX Fin du programme XXXXXXXXXXXXXXXXX
Articles similaires:
- Processing : Fichiers : Enregistrer la position de la souris à intervalle régulier dans un fichier texte
- Processing : Traitement d’image : Extraction des canaux RGB ou des composantes HSV d’une image et analyse tridimensionnelle avec le logiciel libre Scilab
- Saisir une chaîne dans un champ texte et l’envoyer vers le port Série
- GLAP-Box : Programme de test : Programme de test d’un enregistrement de données dans un fichier texte.
- http://web.archive.org/web/20210804223007/http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.ATELIERSPYDUINOSystemeFichierEcrireDataHorodatage
Articles Liés
- Webapps d'initiation : w2UI : Afficher dans un w2grid une série de données horodatées à partir d'un fichier de données
Les webapps sont devenues une partie essentielle de notre vie numérique. Elles nous permettent de…
- Javascript : Afficher des données sur 24H à l'aide de la librairie graphique Dygraphs.
Le Javascript est un langage de programmation très populaire qui permet aux développeurs de créer…
- Javascript : Afficher des données sur 24H multicourbes à l'aide de la librairie graphique Dygraphs.
Le langage de programmation Javascript est un outil puissant pour afficher des données sur des…