novice en programmation doit programmer sous unix.

novice en programmation doit programmer sous unix. - Divers - Programmation

Marsh Posté le 24-03-2006 à 17:48:54    

Bonjour,  
 
J'aimerais un renseignement s'il vous plait:
 
Il faut que j'ecrive un petit script (ou programme) sous unix et je
 n'ai encore jamais fait ca..
 
ce que j'ai a faire, c'est ca: creer un graphique de type XY (abcisse-ordonnee) a partir de donnees d'un fichier texte et afficher ce graphique dans netscape (netscape navigator version 4.78).
Et tout ca dans une procedure automatique.
 
 
Donc a mon avis, je dois decomposer mon script de la facon suivante:  
 
1- lire les donnees contenues dans le fichier texte
2- selectionner celles qui m'interessent
3- creer un graphique a partir de ces donnees
5- exporter le graphique en fichier image
6- importer l'image dans une page html
7- commander l'ouverture de cette page html
 
 
Si quelqu'un pouvait me mettre sur la voie, me dire quel language je dois utiliser,  
merci d'avance !!  
 
PS: voici un exemple de fichier texte dans lequel sont contenues mes donnees:
 
      POINT ID.   TYPE          T1             T2             T3             R1             R2             R3
             1      G      1.599571E+01   1.185148E-02  -3.111541E+00   1.784951E-06   5.286219E-02  -3.340712E-06
             2      G      2.303846E+00   1.238950E-02  -1.913684E+00   1.784951E-06   5.286219E-02  -3.340712E-06
          1000      G      1.009300E-03  -1.461770E-03  -8.895236E-02  -1.380486E-02   1.121588E-03   0.0
          1001      G      6.655139E-04  -1.269913E-03  -1.202470E-02  -8.149052E-03   1.912397E-03   0.0
          1002      G      2.128328E-04  -4.430452E-04   2.143617E-02   9.356764E-04  -1.131274E-03   0.0
          1003      G      1.528846E-04  -3.164306E-04   1.279018E-02   1.256070E-03  -7.879398E-04   0.0
          1004      G      4.770843E-04  -1.147985E-03   2.830649E-02  -3.521185E-03  -6.181516E-04   0.0
          1005      G      2.695279E-04  -3.397622E-04  -1.185465E-02  -1.379297E-04  -1.666789E-03   0.0
          1006      G      5.318802E-03  -1.288805E-02   1.703259E-01   3.963486E-02   2.937418E-02   0.0
          1007      G      3.142439E-03  -5.341556E-03   5.803642E-02   1.815232E-02   1.094855E-02   0.0
          1008      G      1.822350E-04   3.866597E-04   1.790608E-02  -1.606418E-03  -7.047455E-04   0.0
 
 
Et donc, par exemple, j'aimerai faire le graphique suivant contenant 3 points:
les points 1002, 1005 et 1006
leur abcisses respectives se trouvent dans la colonne T1, leurs ordonnees dans la colonne T3.
Et afficher ce graphique (avec legende, titre etc...) dans netscape..
 
merci.

Reply

Marsh Posté le 24-03-2006 à 17:48:54   

Reply

Marsh Posté le 24-03-2006 à 20:11:18    

> ce que j'ai a faire, c'est ca: creer un graphique de type XY (abcisse-ordonnee) a partir de donnees d'un fichier texte et afficher ce graphique dans netscape
 
Que tu ait à faire ça derrière un serveur web, ou dans un dossier de l utilisateur, le PHP devrai être facile à apprendre: facile pour commencer, bonne doc, installation facile, beaucoup de fonctionnalités. Prévoit tout de même une semaine pour apprendre les bases si tu n a aucune expérience en programmation.

Reply

Marsh Posté le 24-03-2006 à 20:21:34    

tu peux également chercher un soft libre et/ou gratuit qui te permettent de tracer des graphs facilement (GNU Plot par exemple)
Une fois ton image générer tu n'as plus qu'à l'intégrer dans une page html

Reply

Marsh Posté le 24-03-2006 à 20:36:55    

Hello,
N'importe quel langage actuel va te permettre de créer ce type de graphique, après, ça dépend plus de tes contraintes : web ou local, taille des fichiers, fréquence de maj, performances, portabilité,....
 
Sur un unix, perl http://www.perl.com/ + gd http://www.boutell.com/gd/ parait pas trop mal...

Reply

Marsh Posté le 27-03-2006 à 10:05:30    

ok merci pour vos réponses, c'est cool !  
 
Par contre, vous auriez pas un petit exemple tout con ? Je m'explique :
 
Concretement, quand je suis sous unix, qu'est ce que je dois faire pour lancer un programme (perl ou php) ? Je l'écris dans un fichier texte ou un fichier executable ? Quelle extension je dois donner à ce fichier dans ce cas? Et comment je l'execute ? Vous auriez pas un exemple tout con, genre juste l'affichage d'un message ou la somme 2+2=4 pour que je puisse voir comment procéder pour executer un tel programme ?  
 
Merci. Miguel
 

Reply

Marsh Posté le 27-03-2006 à 10:38:41    

Personnelement je te conseille PERL ( entre perl et php), c'est bien "mieux" pour apprendre à programmer correctement. PHP est beaucoup trop permissif pour démarrer avec.
 
Deux exemple donc
somme.pl ( en supposant une installe "normale" de perl)

Code :
  1. #!/usr/bin/perl
  2. use strict;
  3. my $somme = 2 + 2;
  4. print  '2 + 2 = '.$somme;


 
somme.php:

Code :
  1. <?php
  2. $somme = 2 + 2;
  3. print '2 + 2 = '.$somme;
  4. ?>


 
Nan nan ça se ressemble pas :o
 
edit: s'quoi t'interpreteur de code qui fume la moquette???


Message édité par anapajari le 27-03-2006 à 10:40:58
Reply

Marsh Posté le 27-03-2006 à 10:42:06    

merci !  
 
Je vais essayer ca tout de suite !  
 
:)

Reply

Marsh Posté le 27-03-2006 à 10:47:40    

+1 pour Perl
Je me souviens que pour un projet où il me fallait sortir des chiffres sur les perfs de l'appli, j'avais utilisé Perl+GnuPlot
En gros, avec Perl je "parsais" les chiffres, les convertissais dans des tableaux Perl, et j'injectais le tout dans un module de GnuPlot (http://search.cpan.org/~caidaperl/ [...] Gnuplot.pm)

Reply

Marsh Posté le 27-03-2006 à 10:48:06    

ouais, j'ai un petit probleme:  
 
J'ai collé dans un fichier texte le premier script:
 
#!/usr/bin/perl
use strict;
my $somme = 2 + 2;
print  '2 + 2 = '.$somme;  
 
Ensuite je l'ai enregistré sous somme.pl
 
Maintenant, comment je l'execute depuis unix S'il te plait ?
(execute somme.pl ou exe somme.pl ne fonctionne pas, il me sort "command not found" )
Miguel

Reply

Marsh Posté le 27-03-2006 à 10:50:52    

deux manières :

Code :
  1. perl somme.pl


 

Code :
  1. chmod +x somme.pl
  2. ./somme.pl


 
La seconde manière est mieux, car tu ajoutes le droit d'exécution sur le fichier et tu utilises la ligne de shebang pour l'exécution (1ère ligne : #!/usr/bin/perl)

Reply

Marsh Posté le 27-03-2006 à 10:50:52   

Reply

Marsh Posté le 27-03-2006 à 11:15:18    

ca marche pas :(
 
voici ce que ca donne :  
 
TRNG_MUNC::essais_reponses_forums> l
total 1
-rwxrwxrwx    1 mwesteel play          76 Mar 27 10:44 somme.pl
 
TRNG_MUNC::essais_reponses_forums> somme.pl
somme.pl - Command not found
 
TRNG_MUNC::essais_reponses_forums> .somme.pl
.somme.pl - Command not found
 
TRNG_MUNC::essais_reponses_forums> perl somme.pl
Illegal character 15 (carriage return) at somme.pl line 2.
(Maybe you didn't strip carriage returns after a network transfer?)
 
TRNG_MUNC::essais_reponses_forums> chmod +x somme.pl#
Cannot access somme.pl#: No such file or directory
 
TRNG_MUNC::essais_reponses_forums> chmod +x somme.pl
 
TRNG_MUNC::essais_reponses_forums> ./somme.pl
./somme.pl - Command not found
 
TRNG_MUNC::essais_reponses_forums> ./ somme.pl
./ - Permission denied
 
Miguel.

Reply

Marsh Posté le 27-03-2006 à 11:24:27    

va falloir que t'y mettes un peu du tien aussi sinon on va jamais s'en sortir!!!
La 1ere commande correcte était:

Code :
  1. TRNG_MUNC::essais_reponses_forums> perl somme.pl


A quoi le systeme te réponds:

Citation :

Illegal character 15 (carriage return) at somme.pl line 2.
(Maybe you didn't strip carriage returns after a network transfer?)
 


Laissant sous-entendre que tu as fait un copier/coller sans vraiment regarder ce que tu faisais ( je parie que tu as laissé les # qui viennent du copier de ce forum).
 
La 2eme ligne correcte était:

Code :
  1. chmod +x somme.pl#


Avec un joli # à la fin normal qui trouve pas le fichier!!!  
Donc quand tu as fait:

Code :
  1. essais_reponses_forums> chmod +x somme.pl

tu as bien mis les droits.
 
 
 
 

Reply

Marsh Posté le 27-03-2006 à 11:40:34    

ah d'accord, excuse moi, je savais pas que les # venaient du copier-coller. Je vais apprendre le language perl, mais avant j'aimerais m'assurer que ca tourne bien sous unix c'Est pour ca que j'arrive pas encore À detecter ce genre d'erreurs.... désolé !
 
Donc j'ai rééssayé et ca tourne. Mais voici ce que ca donne, c'Est normal ? :
 
TRNG_MUNC::essais_reponses_forums> ./somme.pl
./somme.pl: !/usr/bin/perl:  not found
./somme.pl[2]: use:  not found
./somme.pl[3]: =:  not found
2 + 2 = .
 
 
(voici ce que contient somme.pl en l'ouvrant avec wordpad:
 
!/usr/bin/perl
use strict;
$somme = 2 + 2;
print  '2 + 2 = '.$somme;

Reply

Marsh Posté le 27-03-2006 à 11:44:53    

Oui mais alors il faut le # sur la 1ere ligne :o

Code :
  1. #!/usr/bin/perl
  2. use strict;
  3. $somme = 2 + 2;
  4. print  '2 + 2 = '.$somme;


 
un tutorial

Reply

Marsh Posté le 27-03-2006 à 11:57:45    

Bon voilà, en rajoutant le # au début, ca donne ca:
 
TRNG_MUNC::essais_reponses_forums> ./somme.pl
./somme.pl - Command not found
 
À ce moment là, j'ai ouvert le fichier somme.pl sous unix avec nedit et j'ai découvert des <CR> À la fin de chque ligne.
Donc je les ai supprimés. Et là, ca donne:
 
TRNG_MUNC::essais_reponses_forums> ./somme.pl
Global symbol "somme" requires explicit package name at ./somme.pl line 3.
Execution of ./somme.pl aborted due to compilation errors.
 
MAis bon, je voudrais pas te prendre la tête non plus....

Reply

Marsh Posté le 27-03-2006 à 11:59:18    

t'as oublié un $ devant somme...

Reply

Marsh Posté le 27-03-2006 à 12:00:53    

ben nan, il y est , je t'assure, regarde:
 
#!/usr/bin/perl
use strict;
$somme = 2 + 2;
print  '2 + 2 = '.$somme;

Reply

Marsh Posté le 27-03-2006 à 12:04:38    

t'as oublié le my sur la déclaration de somme:

Code :
  1. my $somme = 2 + 2;


 
Oui je sais je l'ai oublié aussi juste au dessus, mais pas sur le 1er code que j'ai donnée ;)

Reply

Marsh Posté le 27-03-2006 à 12:09:10    

Ca MAAARRCHEEE !!!!
Alors un grand merci !!!!!!
MAintenant, je vais me lancer dans l'apprentissage du language.  
Tu sais ou je pourrais trouver de bons tutoriaux par hasard ?  

Reply

Marsh Posté le 27-03-2006 à 14:30:45    

voilà, je me suis lancé. Voici mon premier programme, qui compte le nb de lignes d'un fichier texte, mais il y a un probleme.
 
#!/usr/bin/perl
open (fichier, '3lignes.txt');
$i=0
while(<fichier> ) {
$i++;
}
close fichier;
print "nombre de lignes: $i";
 
Unix me detecte une erreur à la ligne 6, À côté de }
"aborted due to compilation errors"
 
je vois pas d'ou ca peut venir ... ?????  
 
Miguel
 

Reply

Marsh Posté le 27-03-2006 à 14:41:03    

je ne connais pas Perl, mais est-ce que tu ne devrais pas avoir un ';' après $i=0 ?


---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.
Reply

Marsh Posté le 27-03-2006 à 14:47:36    

exact ! ca tourne, merci !  

Reply

Marsh Posté le 27-04-2006 à 12:59:59    

bonjour tout le monde de perl ben jai lu votre discution et jespere ke moi aussi vous allez m'aider, je debute en programation perl sous unix
et voila un message ki me sort
(Can't open perl script "test.pl": Un fichier ou un répertoire du chemin d'accès n'existe pas.)
je ne sais pas si vous plait aider moi jenn ai vraiment besoin  :hello:  je suis entrain de praparer mon projet de fin d'etude!!!!!!!!!!!

Reply

Marsh Posté le 27-05-2006 à 18:05:43    

dis nous quelle est la commande que tu as lancée pour obtenir ce message d'erreur

Reply

Marsh Posté le 27-05-2006 à 18:48:08    

un mois après, si il n'a pas trouvé, son projet de fin d'études doit être mal barré :o ;)


---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.
Reply

Marsh Posté le 27-05-2006 à 20:06:28    

ah ouais j'ai cru que c'était un post qui datait d'aujourd'hui :o

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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