Le langage de programmation Processing est un outil puissant pour les artistes et les développeurs qui souhaitent créer des applications interactives. Il offre une variété de fonctionnalités qui permettent de créer des expériences riches et intuitives. Une de ces fonctionnalités est la possibilité d’enregistrer la position de la souris à intervalle régulier dans un fichier texte. Cet article expliquera comment utiliser cette fonctionnalité pour créer des applications interactives plus intuitives et plus riches.
Processing : Fichiers : Enregistrer la position de la souris à intervalle régulier dans un fichier texte
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
// www.mon-cub-elec.fr
PrintWriter output = null; // initialise un objet PrintWriter pour stocker le flux de donnée à écrire dans le fichier
//PrintWriter output;
String cheminAbsoluFichier=« /home/hinault/Bureau/trans/positions.txt »;
// le fichier doit exister – chemin entier obligatoire
long seconde0=0, comptSeconde=0; // variables des secondes
void setup() {
// Create a new file in the sketch directory – fichier vide !
//output = createWriter(« positions.txt »);
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.println(« ———— Format CSV ————-« ); // Ajoute la ligne au fichier
output.println(« secondes; valeur1; valeur2; »); // Ajoute la ligne au fichier
}
void draw() {
if (second()!=seconde0) { // si une seconde écoulée
ProcessingProcessing Traitement d’image : Filtre Sobel 2D (détection de contours)seconde0=second(); // retient dernière seconde prise en compte
comptSeconde=comptSeconde+1; //incrémente la variable de comptage seconde
point(mouseX, mouseY); // trace un point dans la fenetre Graphique
output.print(comptSeconde+« ; »); // Write the coordinate to the PrintWriter
output.print(mouseX+« ; »); // Write the coordinate to the PrintWriter
output.print(mouseY+« ; »); // Write the coordinate to the PrintWriter
output.println(); // Ajoute saut de ligne
output.flush(); // Writes the remaining data from PrintWriter to the file
} // fin if
}
void keyPressed() {
//output.flush(); // Writes the remaining data to the file
output.close(); // Finishes the file
exit(); // Stops the program
}
PrintWriter ouvreFichier( String cheminAbsoluFichier) {
// ouvre le fichier existant dans un PrintWriter- le fichier doit exister – chemin entier obligatoire
PrintWriter pw=null;
PositionContrôler la position d’un servomoteur à partir du clavier PC. 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
// adapté de la source suivante : http://processing.org/discourse/yabb2/YaBB.pl?num=1267767630
} // fin de ouvreFichier
Voir ici :





