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

Langage Perl Discussion :

Aide pour un TP (débutant)


Sujet :

Langage Perl

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 155
    Points : 77
    Points
    77
    Par défaut Aide pour un TP (débutant)
    Bonjour à tous,

    je me permets de venir vous demander votre aide qui me serait plus que précieuse.

    Je suis actuellement des cours sur Perl (d'initiation), et je dois rendre un travail qui ne me semble pas trop difficile pour des spécialistes, mais pour le moment, j'ai encore du mal avec ce langage.

    Voici ce que l'on me demande de faire:

    Je dois récupérer des informations sur un site référençant des DVD
    (par exemple TAXI (Édition DTS) ), et récupérer des informations
    comme : nom du film, année de sortie, réalisateur, scénariste, éditeur,
    acteurs, durée, le synopsis.
    Je dois donc écrire un programme Perl qui filtre cette page et permettre de ne
    garder que les champs de données intéressant. Le résultat serait
    envoyé sous forme de texte sur la sortie standard, les intitulés seraient
    écrit en majuscules.

    Là où est mon gros problème, c'est que l'on me demande pas mal de fonctionnalité optionnelle que je n'arrive pas à mettre en place. Ces fonctionnalité sont:
    1 Permettre de récupérer une URL directement et non plus passer par
    un fichier.
    2 Permettre de traiter un fichier liste d'URL à traiter.
    3 Transformez votre programme de façon à utiliser des fonctions et
    sous-fonctions pour réaliser les blocs de traitement. Stockez vos
    fonctions dans un chier bibliothèque que vous appellerez (utilisation
    de use) lors de votre programme principal.
    4 Stockez les informations sur le DVD dans un tableau associatif.
    Sauvegardez dans un chier ce tableau associatif pour une utilisation
    ultérieure (astuce : cf. fonction dbmopen).
    5 Exportez les informations sous forme d'un chier SQL (à vous de
    défi nir la structure de la base de donnée).
    6 Créer un menu texte pour guider l'utilisation de votre programme sur
    les différentes possibilités ou les choix de paramètres.
    Et voici le bout de code que j'ai essayé de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    #!/usr/bin/perl -w
     
     
     
    #Je n'ai pas reussi a récupérer ni le synopsis puisqu'il est écrit sur plusieurs ligne et je ne sais pas lire plusieurs ligne en meme temps.
    #Au niveau des acteurs, au contraire ils sont tous codé sur la même ligne ce qui rend difficile la récupération des informations.
    $fichier=$ARGV[0];
    if ($fichier){
    	open(F,$fichier);
    	while($ligne=<F>){
    		if($ligne=~ /div *class *= *" *dvd_title *" *>([^<]*)< *\/div/i){;	
    			print "Titre du film : $1 \n\n"
    		}
    		if($ligne=~ /div *class *= *" *dvd_subtitle *" *>([^<]*)< *\/div/i){
    			print "$1 :\n";
    		}
    		if($ligne=~ /a *class *= *" *dvd_text *"[^>]* *>([^<]*)< *\/a/i){
    			print "$1 \n\n";
    		}
    		if($ligne=~ /div *class *= *" *dvd_text *" *>([^<]*)< *\/div/i){
    			print "$1 \n\n";
    		}
     
    		if($ligne=~ /a *title *= *[^>]* *>([^<]*)< *\/a/i){
    			print "$1 \n\n";
    		}
     
    	}
    }

    En espérant que l'un de vous accepte de prendre le temps de m'aider à améliorer et à compléter mon code. Cela m'enlèverait vraiment une immense épine du pied!!!

    Bien à vous

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Le but d'un TP est de permettre aux élèves de se prendre la tête afin de progresser en cherchant.

    Nous n'allons donc pas te donner la solution, mais te guider.

    Au premier regard de ton script, le premier conseil que je puisse te donner est de toujours commencer tes scripts par les instructions suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #!/usr/bin/perl
    use strict;
    use warnings;
    2- Lit notre FAQ et cours , puis les sources de la rubrique Perl pour avoir les bases du langage, pour voir comment lire un fichier, etc.

    3- Ensuite, tu corriges les erreurs que tu auras dans ton script et tu reviens.

    Bon courage et bienvenu dans le monde de Perl.

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 155
    Points : 77
    Points
    77
    Par défaut
    Merci de m'avoir répondu Djibril.

    Je suis tout à fait d'accord avec toi sur le principe d'un TP! Je compte bien me pencher sur Perl plus sérieusement, d'autant plus que j'en aurai besoin.

    Mon problème est que pour le moment je rame un peu beaucoup, et que, mea culpa, j'avais totalement zapé ce projet que je dois rendre au plus vite, et je décolle samedi pour Prague, donc je suis sérieusement en galère là.

    Je vais essayé de suivre quand même tes conseils en parcourant les tuto et tt pour faire de mon mieux.

    Mais si tout de même quelqu'un ne serait pas contre un petit coup de main, je lui en serait grandement reconnaissant^^.

    Merci encore

  4. #4
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Ce n'est pas très malin de t'y prendre si tard.


    Tu dois déclarer tes variables avec my et tu peux utiliser des elsif()
    #Je n'ai pas reussi a récupérer ni le synopsis puisqu'il est écrit sur plusieurs ligne et je ne sais pas lire plusieurs ligne en meme temps.
    Tu dois repérer ce qui définit la première et dernière ligne, utiliser une variable de contrôle et une concaténation.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    my $var = 0;
    my $data;
     
    ...
     
    if ( $line =~ m/synopsis première ligne/){
    	$var = 1;
    	$data = $line;
    }
    elsif ( $var == 1 ){
    	$data .= $line;
    }
    elsif ( $line =~ m/synopsis dernière ligne/){
    	$var = 0;
    	$data .= $line;
    	print $data;
    }
    #Au niveau des acteurs, au contraire ils sont tous codé sur la même ligne ce qui rend difficile la récupération des informations.
    Tu récupères ta ligne puis tu t'arranges pour séparer les info qu'elle contient par un split où une regexp //g.

    Essaie déjà de faire ça et puis on verra mais pose des questions précises sur les morceaux de code qui te pose problème.

    Bon courage.
    -- Jasmine --

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Si tout le monde se barre à prague comme toi, bah y aura personne pour t'aider . C'est quand même fou de nous dire que tu dois aller en vacance, et qu'à la dernière minute espère qu'on puisse t'aider pour un projet que tu avais zappé.

    Elle est belle la jeunesse d'aujourd'hui

  6. #6
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Mais je suis certaine que le petit PC se fait un plaisir de partir à Prague dans tes valises et qu'il y trouvera du courant et internet pour s'amuser.
    -- Jasmine --

  7. #7
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 155
    Points : 77
    Points
    77
    Par défaut
    Oui bien sûr, je sais bien que je suis totalement en tort.....
    Et je n'utilise jamais les forums pour demander des trucs pareils, mais là je suis tellement en galère que voilà, même si ça n'excuse rien du tout...

    J'essaie de m'y mettre, mais dur dur dur.

    Merci pour ces premières indications

    (Et pour Prague, je doute que ma copine apprécie que je passe mes journées sur mon pc^^, mais bon...)

  8. #8
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 155
    Points : 77
    Points
    77
    Par défaut
    HELP !!!

  9. #9
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Tu pourrais au moins faire l'effort d'essayer de modifier ton script en fonction des conseils que nous t'avons donnés.
    -- Jasmine --

  10. #10
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    1 Permettre de récupérer une URL directement et non plus passer par
    un fichier.
    Pour ceci, le plus simple est d'utiliser un module, comme LWP.
    Tu trouveras un exemple en lisant la doc :
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  11. #11
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 155
    Points : 77
    Points
    77
    Par défaut
    Merci pour tous vos conseils.
    J'essaie de m'y mettre mais je n'ai quasiment aucune base en Perl donc j'ai vraiment beaucoup de mal. C'est un travail qui doit m'aider pour le stage que je suis en train de faire, alors du coup j'essaie de me plonger dedans par intermittence au boulot.
    Je m'y mets, mais c'est vraiment pas gagné...

    Merci

  12. #12
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Bah oui, mais un stage est fait pour apprendre. Et quand on s'y prend tard, bah on assume.

Discussions similaires

  1. Aide pour code flash (débutant)
    Par gsgsgs dans le forum Flash
    Réponses: 15
    Dernier message: 07/11/2013, 20h18
  2. aide pour un stagiaire débutant en BI
    Par amal1x dans le forum QlikView
    Réponses: 3
    Dernier message: 19/04/2011, 14h17
  3. Aide pour vrai un débutant!.
    Par wahab2052 dans le forum Installation, migration et administration
    Réponses: 9
    Dernier message: 20/08/2009, 16h38
  4. [CS3] Aide pour une webmaster débutante
    Par Phrosine dans le forum Dreamweaver
    Réponses: 1
    Dernier message: 04/03/2008, 14h37
  5. Aide pour projet de débutant
    Par Mydriaze dans le forum Débuter
    Réponses: 20
    Dernier message: 28/05/2007, 15h50

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