Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2014-02-22 22:11:03 Lecture fichier

tmalidin33
nouveau membre
Date d'inscription: 2013-12-10
Messages: 7

Lecture fichier



Bonsoir à tous,
Je suis entrain de réaliser un projet ISN pour le lycée, utilisant processing. Il s'agit d'un générateur musical qui fonctionne avec des "balles" que l'on place sur la note voulue (le générateur étant circulaire (voir screen) le logiciel détecte automatiquement la note grâce à l'angle que forme la boule avec l'axe horizontal). Nous avons réussi  à finir le projet mais nous aimerions rajouter quelques fonctionnalités et notamment une fonction d'enregistrement des notes et de lecture d'un fichier contenant les notes. Nous avons trouver le moyen d'enregistrer sur un fichier, les coordonnées des "balles" correspondantes aux notes grâce au printWriter. Cependant, nous aimerions utiliser une sorte de gestionnaire de fichier pour ouvrir les fichiers créés. En effet, mon prof nous a parlé de la librairie G4P et en cherchant un peu sur le net, la fonction JFileChooser serait parfaite, cependant j'aimerais, en sélectionnant le fichier, juste stocker son nom ce qui me permettrait pas la suite d'utiliser le loadString() déjà intégrer à Processing pour le placement des "balles". Mais là je ne sais plus comment faire ?

J'espère avoir été assez clair, merci d'avance.

http://codelab.fr/up/Capture-du-2014-02-22-21-54-12-1.png

Hors ligne

 

#2 2014-02-23 02:03:16 Re : Lecture fichier

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: Lecture fichier



Bonsoir,

Tu as la fonction selectFolder()
http://processing.org/reference/selectFolder_.html

Elle te permet d'ouvrir une fenêtre pour parcourir tes dossiers et fichiers et de renvoyer celui qui est sélectionné que tu utiliseras dans loadStrings().

Bon courage et poste ensuite votre code dans la section code du forum.

Hors ligne

 

#3 2014-02-23 13:59:29 Re : Lecture fichier

top
membre
Date d'inscription: 2012-04-12
Messages: 43

Re: Lecture fichier



Je trouve le selectFile un peu limité, même avec processing il est possible de faire appel à un élément
javax.swing comme JFileChooser du moment que ce composant est indépendant (ou presque) de la fenêtre
Processing. Je te propose un code avec un bouton G4P permettant d'ouvrir un JFileChooser swing. attention
cet exemple est dédié à la lecture d'un fichier texte que j'affiche ensuite dans la fenêtre graphique de Processing
À toi d'adapter le code en fonction de tes besoins....

Dernière modification par top (2014-02-23 14:02:47)

Hors ligne

 

#4 2014-02-24 11:37:43 Re : Lecture fichier

tmalidin33
nouveau membre
Date d'inscription: 2013-12-10
Messages: 7

Re: Lecture fichier



Bonjour,
Tout d'abord merci de vos réponses.
Pour l'utilisation de la librairie G4P, je ne comprends pas vraiment à quoi sert le tableau "lines" et quelles sont les conditions décrient dans le draw. Ensuite, existe-t-il une ligne spécifique pour sélectionner le nom du fichier, que l'on insérerait ici : "File file = jfc.getFileName();" Si bien sur cette commande existe.
Pour ce qui est du code, il est bien trop long pour que je le mette à disposition (+ de 300 lignes avec 4 onglets)

Hors ligne

 

#5 2014-02-24 12:21:33 Re : Lecture fichier

top
membre
Date d'inscription: 2012-04-12
Messages: 43

Re: Lecture fichier



tmalidin33 a écrit:

Bonjour,
Pour l'utilisation de la librairie G4P, je ne comprends pas vraiment à quoi sert le tableau "lines" et quelles sont les conditions décrient dans le draw.

String[] lines=null;
...
File file = jfc.getSelectedFile();
         lines = loadStrings(file);

Le tableau lines permet de récupérer toutes les lignes de mon fichier texte

if (lines!=null && i < lines.length)

Lire les lignes du tableau si celui-ci en contient (ou si le tableau a été initialiser correctement) et jusqu'à la dernière


tmalidin33 a écrit:

Ensuite, existe-t-il une ligne spécifique pour sélectionner le nom du fichier, que l'on insérerait ici : "File file = jfc.getFileName();" Si bien sur cette commande existe.

if (val == JFileChooser.APPROVE_OPTION) {
         File file = jfc.getSelectedFile();

Si l'utilisateur choisit un fichier alors on il est référencé par la variable file de type File

Hors ligne

 

#6 2014-02-24 23:46:37 Re : Lecture fichier

tmalidin33
nouveau membre
Date d'inscription: 2013-12-10
Messages: 7

Re: Lecture fichier



Bon après avoir fait pas mal de tests j'ai finalement réussi à avoir le résultat que j'attendais. Cependant les boules qui s'affichent (celles enregistraient sur fichier) apparaissent mais quelques secondes plus tard, il y a une erreur qui apparaît : Array IndexOutOfBoundsExecption, je sais qu'il s'agit d'une erreur au niveau d'un tableau mais je n'arrive pas à la trouver.

Je mets avec un lien, le fichier entier contenant tous les onglets ainsi que toutes les annexes.
Il y a juste une modification à faire au niveau de l'onglet 'output', il faut modifier le chemin d'accès du dossier "Sample" contenant les essais.
J'espère que le code sera suffisamment compréhensible, car il s'agit de notre premier projet.
J'aimerais également savoir comment fait on pour définir l'emplacement de la sauvegarde du fichier créer car par défaut il se place à coté de .pde mais j'aimerais qu'il se place dans le dossier "Samples" .
Autre problème, il y a une boule qui se place automatiquement dans le coin supérieur gauche et je sais pas d’où elle vient.

Hors ligne

 

#7 2014-02-25 10:37:43 Re : Lecture fichier

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: Lecture fichier



Bonjour,

Pour les fichiers, je te conseille d'utiliser la variable sketchPath qui contient le répertoire de l'application. Ainsi ton appli sera portable sur d'autres machines.

jfc = new JFileChooser(new File(sketchPath + "/Samples"));

Ainsi que la ligne

output = createWriter(sketchPath + "/Samples/" + nom + ".atm");

Dans ta méthode lecture(), tu ne remplis pas les tableaux abscisse et ordonnee ilfaut que tu fasses une boucle pour parcourir les éléments de ton fichier et remplir tes tableaux.

Ensuite pour les boules il aurait été judicieux au lieu d'utiliser 5 tableaux de créer une classe Boule avec cinq variables. Et en suite une arrayList de Boule pour pouvoir les initialiser au fur et à mesure.

En fait comme les tableaux sont avec une taille fixe, un tas de boule est en 0, 0. Pour tricher vous pourriez les initialiser hors de la fenêtre.
Les tableaux ne sont pas fait pour avoir une taille variable.

Bon courage pour la suite.

Hors ligne

 

#8 2014-02-25 11:08:41 Re : Lecture fichier

tmalidin33
nouveau membre
Date d'inscription: 2013-12-10
Messages: 7

Re: Lecture fichier



Merci beaucoup pour ta réponse je vais corriger tout de suite, cependant je ne sait absolument pas comment créer des classes et je ne sais pas m'en servir ... Pour initialiser les tableaux à une autre valeur que zéro, comment faut-il faire ??

Bonne journée et merci

Hors ligne

 

#9 2014-02-25 12:14:02 Re : Lecture fichier

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: Lecture fichier



Dans la méthode setup() :

  for (int i = 0; i < abscisse.length; i++) {
    abscisse[i] = -20;
    ordonnee[i] = -20;
  }

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024