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 :

Supprimé des éléments vide d'un tableau


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 43
    Points : 24
    Points
    24
    Par défaut Supprimé des éléments vide d'un tableau
    Voila j'ai un tableau @adresse , je veut en supprimé les entré vides. J'ai fait le sous programme suivant , mais il ne fonctionne pas auriez vous une idée de ce qui cloche.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    sub clean(@)
    {
     my @adresse = @_;
      @adresse  =  grep { $_ ne ' ' } @adresse;
      return @adresse 
    }

    J'ai aussi un autre problème , avec stat();

    j'ai le sous programme suivant, qui ne fonctionne lui aussi pas et je ne trouve vraiment pas ce qui cloche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    sub size(@)
    {
     my @fichier = @_;
      for my $T( @fichier ) {
      return my $taille=(stat("$T"))[7];
     }
    }

  2. #2
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Salut

    Pour ta fonction clean, je te propose le code suivant, sans doute plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    sub clean(@)
    {
      my (@adresse);
      foreach(@_){
            #Si ce n'est pas un caractère d'espacement, on retient.
    	if(/(\S)/) {
    		push(@adresse, $_);
    	}
      }
      return @adresse
    }
    Concernant ta deuxième question, tu peux l'alléger de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    sub size
    {
    	my($fichier) = $_[0];
    	return my($taille)=(stat($fichier))[7];
    }
    Attention, la fonction n'attendra qu'un argument (un nom de fichier) et rendra la taille en octets. Maintenant, ça devrait pas être compliqué pour qu'elle accepte une liste de fichiers et retourne une liste des tailles de ces fichiers.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

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

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 210
    Points : 99
    Points
    99
    Par défaut
    Essaie sa



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    sub size(@)
    { 
     for my $T( @_ ) {
       my($fichier) = $_[0]; 
       return my($taille)=(stat($fichier))[7];
       }
    }

  4. #4
    Membre actif
    Inscrit en
    Février 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 167
    Points : 203
    Points
    203
    Par défaut Re: Supprimé des éléments vide d'un tableau
    Citation Envoyé par shinux2004
    Voila j'ai un tableau @adresse , je veut en supprimé les entré vides. J'ai fait le sous programme suivant , mais il ne fonctionne pas auriez vous une idée de ce qui cloche.


    Avec ou sans un caractère espace dedans? Sinon,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sub clean {
      return grep { defined } @_;
    }
    pour "tout sauf undef". (ou bien tu veux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep { $_ ne '' } # sans espace
    et tu auras plus de succès je crois).

    Citation Envoyé par shinux2004
    J'ai aussi un autre problème :twisted: , avec stat();

    j'ai le sous programme suivant, qui ne fonctionne lui aussi pas et je ne trouve vraiment pas ce qui cloche :oops:
    Tu commences à boucler sur une liste et tu retournes le premier résultat. Et puis -s et peut-être plus approprié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sub size {
        return map { -s } @_;
    }
    Laisses tomber les prototypes, ça ne sert à rien dans ce contexte.

    N

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 43
    Points : 24
    Points
    24
    Par défaut
    Thanks sa marche au poil

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

Discussions similaires

  1. [PHP 5.2] Supprimer des éléments de tableau
    Par gtraxx dans le forum Langage
    Réponses: 6
    Dernier message: 28/09/2011, 11h17
  2. Réponses: 2
    Dernier message: 28/03/2011, 16h25
  3. Réponses: 9
    Dernier message: 12/08/2009, 15h05
  4. [VBA-E]supprimer des cellules vide
    Par garn dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/02/2006, 11h56
  5. Supprimer des éléments dans une TreeView ?
    Par souch dans le forum Composants VCL
    Réponses: 4
    Dernier message: 16/09/2005, 12h20

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