[Java] Architecture pipes-filters

Architecture pipes-filters [Java] - Java - Programmation

Marsh Posté le 01-12-2005 à 17:30:32    

Alors, mon prof nous demande d'effectuer deux transformation sur un puzzle,
 
J'ai donc creer une classe transformation qui me permet soit d'avoir mon puzzle en miroir soit avec une rotation 3 quart.
Mon puzzle est stocké dans un fichier et sa transformation dans un nouveau fichier.
 
Jusque la tout va bien, mais je relis le sujet et je m'aperçois que le prof nous demande de lancer ces transformation en ligne de commande, avec un filtre sur le format du fichier.
Mais aussi il veut que le resultat du filtre soit envoyé dans un pipe pour etre ensuite utilisé.
 
donc je suppose :
 
MonFiltreSurLefichier | MaTransformation | MonFiltreSurLefichierSortie
 
Ma transformation ce trouve dans un fichier java
Comment est ce que je fais le liens entre l'execution de mon programme java, et l'enchainement des pipes?  
Je suis un peu perdu! jene comprend pas comment utilisé l'architecture filtre pipe avec on programme java et la ligne de commande
 
Enfin voilà le sujet pour ce qui n'aurait pas compris:
Two transforms, provided as filters that operate on your sudoku file format are required. These should work from the (DOS or Unix) command line as filters, accepting an existing valid puzzle and producing as output another valid sudoku puzzle in the same format. An example of a simple transform would be one that rotates the puzzle through a quarter turn clockwise or provides a mirror image of the original puzzle. You will be expected to show the output from one filter being piped into the other at the command line.
 
Désolé c'est en anglais mais je suis en ERASMUS en Irlande donc il ne fournisse pas les sujets en Français lol !

Reply

Marsh Posté le 01-12-2005 à 17:30:32   

Reply

Marsh Posté le 01-12-2005 à 17:39:22    

Java sais pas ce qu'est un pipee, c'est ton shell qui va gerer le passages des infos entre les sorties standards (System.out) et entrées standard (System.in)


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 01-12-2005 à 17:42:26    

elianor a écrit :

Java sais pas ce qu'est un pipee


et nio ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 01-12-2005 à 17:42:52    


 
J'suis pas moderne :o
 
(je vais voir)


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 01-12-2005 à 17:42:53    

ça m'avance pas à grand chose, mon problem c'est de savoir quel genre de ligne de commande il faut que je tape pour gerer ma question? comment est ce que je communiquye par exemple le nom de mon fichier à mon pogramme java, si j'appelle mon programme java dans le deuxieme filtre? je ne comprend pas trés bien ce que le prof attend

Reply

Marsh Posté le 01-12-2005 à 17:43:52    

elianor a écrit :

J'suis pas moderne :o
 
(je vais voir)


merci :D


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 01-12-2005 à 17:44:11    

qu'est ce que nio ?

Reply

Marsh Posté le 01-12-2005 à 17:46:50    

Bon, pour ce soir j'hésite, je vais voir harry potter, ou je fais des nio ?


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 01-12-2005 à 17:52:01    

hp :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 01-12-2005 à 17:52:34    

S'il vous plait, j'ai regarder de la doc à propos de nio, mais  j'arrive pas à voir ce qu'il faut que je fasse pour répondre à cette question, je suis coincée, ce projet est pour demain, et là j'avoue que je sature. Je comprend pas comment communiquer entre la ligen de commande, mon programme filtre et pipe. Quelqu'un pourrait expliquer clairemenr comment on peut faire un lien
 
Je ne suis pas obligé de faire une la transormation en java, je peux le faire dans un autre language mais je ne sais pas du tout comment on fait un lien entre un programme et une ligne de commande, je n'ai jamais fait ça auparavant!

Message cité 1 fois
Message édité par lordankou le 01-12-2005 à 18:05:57
Reply

Marsh Posté le 01-12-2005 à 17:52:34   

Reply

Marsh Posté le 02-12-2005 à 16:32:37    

lordankou a écrit :

S'il vous plait, j'ai regarder de la doc à propos de nio, mais  j'arrive pas à voir ce qu'il faut que je fasse pour répondre à cette question, je suis coincée, ce projet est pour demain, et là j'avoue que je sature. Je comprend pas comment communiquer entre la ligen de commande, mon programme filtre et pipe. Quelqu'un pourrait expliquer clairemenr comment on peut faire un lien
 
Je ne suis pas obligé de faire une la transormation en java, je peux le faire dans un autre language mais je ne sais pas du tout comment on fait un lien entre un programme et une ligne de commande, je n'ai jamais fait ça auparavant!


 
nio sert à créer des pipes en effet mais je ne crois pas que tu doives utiliser ça pour ton problème car il est demandé de rediriger les E/S de tes programmes par des pipes en ligne de commande.
Ici les pipes sont extérieurs à tout programme java, ce sont des pipes Système qui connectent entre-elles les entée et sortie standard.
 
 
Je propose l'architecture suivante pour un programme gérant une transformation
 
En entrée : le puzzle à transformer
  si un nom de fichier est passé en parametre du programme alors
    lecture du fichier
  sinon
    lecture de l'entrée standard
  finsi
  construction de la représentation interne du puzzle à partir des infos récupérée
 
Ensuite on effectue la transformation.
Et enfin, on écrit sur la sortie standard le résultat de la transformation
 
La commande à lancer ressemblera à ça :
 
java TransformationMiroir puzzleOrigine.txt | java TransformationRotation
 
"> puzzleTransformé.txt" : ça injecte le résultat dans un fichier
 
Ce qu'il faut comprendre, c'est que ce qui transite dans le pipe, c'est le résultat de la transformation (pas le nom d'un fichier dans lequel tu aurais sauvegardé le résultat)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed