IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web Perl Discussion :

PHP ou Perl: Cherche petit exemple tout con.


Sujet :

Web Perl

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 6
    Points
    6
    Par défaut PHP ou Perl: Cherche petit exemple tout con.
    Salut à tous !

    Une petit question concernant perl ou php (au choix)

    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 bip, 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

    PS: Pour info, voici ce que je cherche À faire si certains peuvent me mettre sur la voie:

    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


    On m'a dit que les languages php et perl étaient adaptés à mon cas. Dans ce cas, quel est la plus facile: php ou perl ?


    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.
    Miguel

  2. #2
    Membre régulier Avatar de Ickou
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 108
    Points
    108
    Par défaut
    Salut !

    Moi j'utiliserai perl mais php est aussi bien......
    Tu enregistre un fichier avec l'extension ".pl" et tu écris ton programme dedans.

    pour lire ton fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    open (C, "fichier.txt") or die "impossible d'ouvrir le fichier !\n";
    Puis pour sélectionner tes lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    while(<C>)
    {
    chomp;
    if($_ =~ /expression régulière/)
    {
    $_ =~ /utilisation de parenthèse pour récupérer ce que tu veux dans $1/;
    ton_truc=$1;
    }
    Regarde le chapitre des expressions régulières pour plus d'infos....

    Pour le graphique, tu dois installer un module (regarde le FAQ), je te conseil : GD::Graph
    pour connaitre la syntaxe du module, regarde sur CPAN....

    Pour les interactions entre perl et HTML, regarde le module CGI (un exemple dans le FAQ)

    Bonne chance
    -------------------
    Ickou

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    ouais j'utilise perl, c'Est confirmé !

    merci pour ta réponse, je vais étudier ca de plus près.

    PS: je décris plus précisemment mon problème actuel. j'en suis à extraire les données du fichier1.txt et les injecter dans le fichier2.txt (nouveau fichier)

    Et dès que j'ai un ébauche de programme je la poste pour vous demander conseil... ciao !
    Miguel

    Voici donc mon pb actuel:

    voilà à quoi ressemble le fichier de départ fichier1.txt, sachant que ce qui m'interesse ce sont les données en dessous des colonnes T1 et T3:

    ------------ début fichier1.txt ---------------------
    okokokok
    ,,,
    ....
    e f g
    100 1 2 3
    -*----OLOAD
    D I S P L A C E M E N T V E C T O R
    POINT ID. TYPE T1 T2 T3
    1048 G 5.3E-04 -9.8E-03 2.34E-02
    1049 G 1.74E-05 1.3E-05 2.305E-03
    1050 G -4.9E-05 -4.27E-05 -1.192E-02
    ----------
    *********
    commentaires
    SUBCASE
    D I S P L A C E M E N T V E C T O R
    POINT ID. TYPE T1 T2 T3
    201 G 5.3E-04 -9.8E-03 2.34E-02
    202 G 2.78E-05 1.3E-05 2.99E-03
    305 G -4.9E-05 -4.27E-05 -1.192E-02
    1 * * * END OF JOB * * *
    ------------------- fin fichier1.txt ---------------------------



    Les données qui m'interessent, ce sont les données en dessous de chaque "D I S P L A C E M E N T V E C T O R". Ce sera le mot clé je suppose pour detecter qu'on commence à lire un tableau avec les valeurs.
    Et donc, j'aimerais que l'utilisateur puisse choisir les ID. des points qui l'interessent. Si il rentre par exemple 1049 202 et 305, il faudrait que le fichier texte cible, c'est à dire fichier2.txt, ait cette tronche là:



    ---------------------- début fichier2.txt ---------------------
    # T1 T3
    1.74E-05 2.305E-03
    2.78E-05 2.99E-03
    -4.9E-05 -1.192E-02
    ----------------------- fin fichier2.txt -----------------------

    En remarquant que seules les données correspondant aux colonnes T1 et T3 m'interessent.

    Voilà...

  4. #4
    Membre régulier Avatar de Ickou
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 108
    Points
    108
    Par défaut
    essais ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    while(($ligne=<C>)!~/^POINT ID/) && !eof(C) ) {}
    $ligne=<C>;
    $ligne =~/expression/;
    $t1=$1;
    $t3=$2;
    Si tu me donnes le séparateur (espace, tabulation ?) utilisé dans tes lignes, je peux t'écrire l'expression.......
    -------------------
    Ickou

  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    ce sont des espaces uniquement. aucune tabulation.

    j'essaie !

  6. #6
    Futur Membre du Club
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    ouais....je vais calmer ma joie je crois....
    J'ai pas encore assez de connaissances en perl pour comprendre ce que t'as fait. Alors pour le faire marcher, faut encore que j'aprenne..

    Genre pour créer le fichier2.txt et implémenter les valeurs qui m'interessent dedans.

    Ensuite par exemple, je sais pas ce que c'Est <C> dans ton script. Ni eof ou encore expression...Donc j'ai encore un long chemin à faire...

  7. #7
    Membre régulier Avatar de Ickou
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 108
    Points
    108
    Par défaut
    expression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $ligne =~/^\S*\s\S*\s(\S*)\s\S*\s(\S*)/;
    les parenthèses permettent d'enregistrer les données dans $1, $2, etc ...
    \S --> tout sauf un espace
    \s --> un espace
    -------------------
    Ickou

  8. #8
    Membre régulier Avatar de Ickou
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 108
    Points
    108
    Par défaut
    pour créer le fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    open (F, ">fichier2.txt");
    écrire dedans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print F "ton texte \n";
    fermer le fichier :
    <C> c'est pour appeller une autre ligne de ton fichier ouvert....
    eof = end of file --> pour dire de stoper si tu arrive à la fin du fichier ....
    L'expression régulière :
    http://perl.developpez.com/faq/?page=sectionB7
    http://perl.developpez.com/faq/?page...72#sectionB72b

    Bonne chance
    -------------------
    Ickou

  9. #9
    Futur Membre du Club
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    mmmmh, je crois que je commence à capter là...

    PAr contre le code tourne pas.

    J'ai envoyé ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #!/usr/bin/perl
    use strict;
    open (fichier, 'fichier1.txt');
    while(($ligne=<C>)!~/^POINT ID/) && !eof(C) ) {} 
    $ligne=<C>; 
    $ligne =~/^\S*\s\S*\s(\S*)\s\S*\s(\S*)/;
    $t1=$1; 
    $t3=$2;
    open (F, ">fichier2.txt");
    print F "exemple texte \n";
    Et ca donne ca :

    TRNG_MUNC::essais_reponses_forums> ./script.pl
    Global symbol "ligne" requires explicit package name at ./script.pl line 4.
    syntax error at ./script.pl line 4, near ") &&"
    Execution of ./script.pl aborted due to compilation errors.


    [Edit par 2Eurocents]
    Merci de ne pas oublier les balises [code] et [/code].
    Elles améliorent la lisibilité du message et permettent de conserver l'indentation éventuelle.
    [/Edit]

  10. #10
    Membre régulier Avatar de Ickou
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 108
    Points
    108
    Par défaut
    essais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #!/usr/bin/perl
    open (C, "fichier1.txt");
    while(($ligne=<C>)!~/^POINT ID/ && !eof(C) ) {}
    $ligne=<C>;
    $ligne =~/^\S*\s\S*\s(\S*)\s\S*\s(\S*)/;
    $t1=$1;
    $t3=$2;
    open (F, ">fichier2.txt");
    print F "$t1\t$t3\n";
    close F;
    close C;
    use strict; --> j'aime pas car renvois des messages d'erreur si tu mets pas "my" devant tes variables...........
    -------------------
    Ickou

  11. #11
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Citation Envoyé par Ickou
    use strict; --> j'aime pas car renvois des messages d'erreur si tu mets pas "my" devant tes variables...........
    Ne pas utiliser "use strict;" --> je n'aime pas car Perl ne me signalera pas d'erreur si je fais une faute de typo ... Il créera la nouvelle variable au nom faux et mon programme plantera silencieusement.
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  12. #12
    Membre régulier Avatar de Ickou
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 108
    Points
    108
    Par défaut
    Pourquoi "use strict;" veut "my" devant les variables hors des fonctions :
    -------------------
    Ickou

  13. #13
    Futur Membre du Club
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    réponse de débutant :


    quelque soit l'endroit , tu dois toujours mettre my pour déclarer tes variables avec use strict.

  14. #14
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Citation Envoyé par Ickou
    Pourquoi "use strict;" veut "my" devant les variables hors des fonctions :
    On est hors sujet principal, mais la question est d'importance

    "use strict;" active un mécanisme de vérification qui exige que toute variable soit déclarée au préalable.

    Ce mécanisme est contraignant (nécessité du my, ou d'un our, afin de déclarer les variables avant leur premier usage), mais il est salutaire.

    En effet, Perl permet "l'auto-vivification" de variables, un peu comme les éléments de hash ou de tableau. Accéder à un élément de hash ou de tableau inexistant le crée, avec une valeur undef.

    Pour les variables, c'est pareil. Si on a utilisé jusque là une variable $compteur, qui vaut 53, le fait d'utiliser $compteurs, sans le pragma "use strict;" créera une variable distincte dont la valeur sera undef (équivalent à 0).

    Je suis sûr que l'effet obtenu peut être très différent de ce qui était prévu initialement

    La règle, avec le "use strict;", c'est de déclarer les variables avant leur premier usage, et en faisant attention à leur portée et leur visibilité. La déclaration préalable se fait avec les mots clefs my et our.

    Il y a deux articles sur la portée et la visibilité dans la FAQ


    Ceci dit, et pour paraphraser une pub de la sécurité routière :
    "use strict;" n'est pas obligatoire, c'est juste indispensable ...
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  15. #15
    Membre régulier Avatar de Ickou
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 108
    Points
    108
    Par défaut
    merci 2Eurocents pour ta

    J'aisserai de l'utiliser à l'avenir.

    sinon fifto, tu t'en sors :
    -------------------
    Ickou

  16. #16
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Je pense que tu ferais bien de faire un tour du côté de la FAQ de ce site, car ta façon de lire le fichier par exemple est assez fantaisiste...

    Par ailleurs, plutôt qu'une expression rationnelle illisible, je pense qu'un simple split() serait bien préférable.

    --
    Jedaï

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/02/2013, 22h57
  2. [JGraph] cherche un petit exemple
    Par xyz911 dans le forum 2D
    Réponses: 3
    Dernier message: 16/12/2008, 23h48
  3. Réponses: 15
    Dernier message: 24/10/2005, 09h04
  4. execution php dans perl
    Par rdams dans le forum Web
    Réponses: 7
    Dernier message: 11/10/2005, 20h09
  5. Problème tout con d'addition
    Par krfa1 dans le forum ASP
    Réponses: 8
    Dernier message: 21/09/2005, 21h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo