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 :

Probleme avec grep


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 74
    Points : 41
    Points
    41
    Par défaut Probleme avec grep
    J'ai encore un probleme avec grep j'ai un tableau @site dont je souhaite éliminer les valeurs déjà traité
    j'ai tente l'approche suivante


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @site = grep( { defined $urls{$_} } @site);
    mais sa domme rien

  2. #2
    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 Re: Probleme avec grep
    Citation Envoyé par cryptorchild
    j'ai tente l'approche suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @site = grep( { defined $urls{$_} } @site);
    mais sa domme rien
    C'est pourtant une approche correcte ... à condition que %url soit préalablement rempli :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    my @l=qw (a b c e h);
    my %h=qw (a 1 c 1 e 1);
     
    @nl=grep ( { defined ($h{$_}) } @l );
     
    $,=",";
    print @nl;'
    Affiche bien a,c,e comme on peut s'y attendre ...

    Maintenant, toi tu semble souhaiter éliminer ce qui est déjà dans le hash. Il faut donc inverser ta condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    my @l=qw (a b c e h);
    my %h=qw (a 1 c 1 e 1);
     
    @nl=grep ( { not defined ($h{$_}) } @l );
     
    $,=",";
    print @nl;'
    Affiche alors b,h.

    Il te faut donc faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @site = grep( { not defined $urls{$_} } @site);
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 74
    Points : 41
    Points
    41
    Par défaut
    En fait je cherche comment remplacé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    next if defined $vus{$url};
    par l'équivalant mais avec un tableau

    Dans les fait je veut utiliser cette fonction



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    sub exist { 
     
       my $url = shift; 
       my $find; 
       my $sth = $dbh->prepare(' SELECT count(site_url) FROM sites WHERE site_url="$url" '); 
          $sth->execute; 
       $sth->bind_columns(\$find); 
      $sth->fetch(); 
      $sth->finish(); 
     
    #0 = introuvable, 1 = trouvé 
      return $find 
    }
    et faire un map ou un grep pour supprimer tout les élément ayant $_ == 1

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 74
    Points : 41
    Points
    41
    Par défaut
    Me revoila pour cabler le grep() avec la fonction sql j'ai fait cela


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @site = grep( {$_ = exist($_); ($_ == 0) } @site);
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @site = grep( { ($_ = exist($_)) not ($_ == 0) } @site);
    et sa ne marche pas

    Je galère vraiment la help please !!!!!

  5. #5
    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
    Si j'ai bien compris la question, un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @site = grep( { (exist($_) == 0) } @site);
    devrait suffire.
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 74
    Points : 41
    Points
    41
    Par défaut
    Merci 2Eurocents .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec l'utilisation de grep
    Par fgalves dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 07/11/2006, 23h49
  2. Petit problème avec grep
    Par dug dans le forum Shell et commandes GNU
    Réponses: 13
    Dernier message: 11/05/2005, 15h34
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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