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 script perl


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 16
    Points
    16
    Par défaut Aide script perl
    Bonjour
    je voudrais ecrire un script qui ouvre un fichier texte et qui le lit ligne par ligne et dés qu'il trouve la chaine de caractére "Map" il revoi tous ce qu'il a lu dans un autre fichier de sortie .
    exemple

    ddd
    dzz
    dopioi
    Ma
    dd
    egrg
    frp
    dde


    le fichier de sotie dois contenir seulement le 3 premiére lignes
    Merci pour votre aide

  2. #2
    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
    Et bien, où est ton code ? (je rappelle que nous n'écrivons pas le code à votre place, nous sommes là pour aider, pas pour faire votre boulot)

    --
    Jedaï

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 16
    Points
    16
    Par défaut
    Je n'ai aucune experience en perl , et j'en ai vraiment besoin de ce script .
    Merci pour votre aide

  4. #4
    Membre éprouvé Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Points : 1 118
    Points
    1 118
    Par défaut
    Est-ce que "Map" doit occuper toute une ligne ou est-ce qu'il peut faire partie d'une phrase ou d'un mot ?

    par exemple, si tu trouves la ligne
    "aMappy", est-ce qu'on doit s'arrêter ?

    Je ne répond à aucune question technique par MP.

    Si votre problème est réglé, n'oubliez pas Dans tous les cas

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 16
    Points
    16
    Par défaut
    là ou ya le caractére Map ( aMappy, Mappy, 1Map....) meme chose.
    donner en sortie les lignes de 1 à N juska trouver le caractére "Map" ( en quelque sorte ; supprimer les lignes aprés le caractére Map )
    Merci

  6. #6
    Membre éprouvé Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Points : 1 118
    Points
    1 118
    Par défaut
    Voilà un p'tit bout de code qui fait ça

    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
     
    #!/usr/bin/perl
     
    BEGIN {
    	use strict;
    	use warnings;
    }
     
    # lire paramètres en ligne de commande
    my $infile  = shift(@ARGV);
    my $outfile = shift(@ARGV);
     
    if (!($outfile)) { die("usage : $0 <fichier d'entrée> <fichier de sortie>"); }
     
    # ouverture des fichiers
    open(INPUT,  '<', $infile)  || die("impossible d'ouvrir $infile en lecture");
    open(OUTPUT, '>', $outfile) || die("impossible d'ouvrir $outfile en écriture");
     
    # recopie jusqu'à la ligne contenant 'Map'
    while (<INPUT>)
    {
    	last, if ( m/Map/o );
    	print OUTPUT $_;
    }
     
    # fermeture des fichiers
    close(INPUT);
    close(OUTPUT);

    Je ne répond à aucune question technique par MP.

    Si votre problème est réglé, n'oubliez pas Dans tous les cas

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 16
    Points
    16
    Par défaut
    Merci beaucoups

  8. #8
    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
    Citation Envoyé par MarneusCalgarXP
    Voilà un p'tit bout de code qui fait ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #!/usr/bin/perl
     
    BEGIN {
    	use strict;
    	use warnings;
    }
    C'est incorrect, en faisant ça tu restreint la portée de use strict au bloc BEGIN, il devient donc inutile.

    --
    Jedaï

  9. #9
    Membre éprouvé Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Points : 1 118
    Points
    1 118
    Par défaut
    Ah ? Je pensais que la portée du "use strict" et "use warnings" était globale, peu importe l'endroit où ils sont déclarés !

    Je ne répond à aucune question technique par MP.

    Si votre problème est réglé, n'oubliez pas Dans tous les cas

  10. #10
    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
    Non, c'est justement un de leurs avantage : tu peux appliquer les warnings et strict où tu veux, comme tu veux et même les désactiver dans une portée bien précise, pour te permettre de faire des manipulations avancées normalement interdites tout en gardant les avantage de "strict" pour le corps de l'application.

    Un exemple simple :
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    #! /usr/bin/perl
    use strict;
    use warnings;
     
    my ($auteur, $plateforme, $compilateur, $version);
    my $last;
     
    while( <> ){
        if( $last and $last ne $ARGV ){
            no warnings "uninitialized";
            print "$auteur|$plateforme|$compilateur|$version|",($.-1),"\n";
            ($auteur, $plateforme, $compilateur, $version) = ();
            $. = 1;
        }
     
        s/^\s+|\s+$//g;
     
        if( !$auteur and m{// \s* auteur \s* : \s* (.+)$}xi ){
            $auteur = $1;
        }
        elsif( !$plateforme and m{// \s* plateforme \s* : \s* (.+)$}xi ){
            $plateforme = $1;
        }
        elsif( !$compilateur and !$version and
                m{// \s* compilateur / version \s* : \s* (.+) / (.+)$}xi ){
            $compilateur = $1;
            $version = $2;
        }
     
        $last = $ARGV;
    }
     
    {
        no warnings "uninitialized";
        print "$auteur|$plateforme|$compilateur|$version|$.\n";
    }
     
    __END__
    Comme tu le vois, je ne veux pas que les warnings du type "uninitialized" soit affichée lorsque j'essaie d'imprimer une valeur qui n'était pas dans le fichier, donc je rajoute un no warnings "uninitialized" pour passer sous silence cette catégorie de warning (une anecdote intéressante c'est que j'avais fait une erreur dans une première version de ce script qui m'a été révélée par un warning, si j'avais globalement désactivé les warnings, je serais sans doute passé à côté).
    C'est pour ça que je préfère "use warnings" au flag "-w", parce qu'on contrôle mieux le comportement de l'application.

    --
    Jedaï

  11. #11
    Membre éprouvé Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Points : 1 118
    Points
    1 118
    Par défaut
    Ok, merci pour l'astuce

    Je ne répond à aucune question technique par MP.

    Si votre problème est réglé, n'oubliez pas Dans tous les cas

Discussions similaires

  1. aide script perl <=> shell
    Par euroscott dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 07/04/2010, 10h54
  2. Besoin d'aide script PERL generateur de hits
    Par maiko dans le forum Web
    Réponses: 4
    Dernier message: 10/07/2009, 23h06
  3. Besoin d'aide script perl MERCI
    Par la_star160 dans le forum Langage
    Réponses: 1
    Dernier message: 11/08/2008, 12h36
  4. Réponses: 9
    Dernier message: 10/02/2006, 17h24
  5. [langage] Script Perl Aide
    Par julfra dans le forum Langage
    Réponses: 7
    Dernier message: 17/05/2004, 09h55

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