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 :

Déplacement de donné


Sujet :

Langage Perl

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 6
    Par défaut Déplacement de donné
    Hello ,j'ai un petit problème avec un tableau

    soit mon talbeau @data qui contient des adresse de document ayant les extensions suivants

    htm asp aspx nux mspx cfm html xhtml jhtml php php3
    php4 shtml jsp php4 php5 jpg jpeg png gif doc rtf pdf xls
    je voudrais le fractionner en trois tableau

    @data qui contiendras les liens vers les fichiers d'extension
    htm asp aspx nux mspx cfm html xhtml jhtml php php3
    php4 shtml jsp php4 php5
    @picture les liens vers les fichiers
    jpg jpeg png gif
    @document les liens vers les fichiers
    doc rtf pdf xls
    J'ai tenter plusieur méthode mais aucune ne marche !!!

  2. #2
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 895
    Par défaut
    Salut !

    Et si tu nous montrais ces fameuses méthodes ? On verra où ça bloque.

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

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

  3. #3
    Membre expérimenté
    Inscrit en
    Février 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 167
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    my @data = qw{
    htm asp aspx nux mspx cfm html xhtml jhtml php php3
    php4 shtml jsp php4 php5
    };
     
    my @picture = qw{
    jpg jpeg png gif
    };
     
    my @document = qw{
    doc rtf pdf xls
    };
    Pas trop qompliqué tout ça :)

    N

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 6
    Par défaut
    Le méthode la plus concluante que j'ai faite est celle si


    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
    @data = qw/ a.doc b.DOC /; 
     
         my @document; 
         { 
          my @nouveau_data; 
           for( @data ) { 
             if( /\.doc$/i ) { 
               push @document, $_; 
              } 
               else { 
                 push @nouveau_data, $_; 
                } 
              } 
            @data = @nouveau_data; # Récupération de mon tableau data
                                   # Mes fichiers .doc sont dans le tableau @document
            }
    Mais je trouve pas comment faire la même chose sur plusieur tableau simultanément.

  5. #5
    Membre expérimenté
    Inscrit en
    Février 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 167
    Par défaut
    ah, j'avais pas compris. Si tu veux un truc simple à maintenir (dans le mesure où il faut simplement garder les listes qw ... / à jour et le code fait le reste, alors quelque chose comme

    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
     
    ny( @document, @image, @data );
    my %diispatch = (
        map( { $_, \@data}, 
            qw{ htm asp aspx ...}
        ),
        map( { $_, \@image}, 
            qw{ jpg gif png swf ... }
        ),
        map( { $_, \@document}, 
            qw{ doc rtf txt ...}
        ),
    );
     
    my @source = qw/ a.doc B.DOC, c.jpg, d.mp3 /;
     
    for my $s( @source ) {
        my ($ext) = ($s =~ /\.([^.]+)$/);
        if( !$ext ) {
            warn "pas d'extension dans [$s]\n";
            next;
        }
        $ext = lc $ext;
        if( not exists $dispatch{$ext} ) {
            warn "extension [$ext] ignorée dans [$s]\n";
            next;
        }
        push @{$dispatch{$ext}}, $s;
    }
    J'ai pas testé, il y a peut--être des erreurs, mais tu vois l'idée.

    Avoir trois tables, je trouve ça un peut compliqué. J'aurais plus tendance à utiliser un hash d'arrays.

    N

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 6
    Par défaut
    Un hash d'array moi je suis preneur de tout les solutions du moment que tu m'explique un minimum comment sa marche !

  7. #7
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 895
    Par défaut
    Salut

    Et pourquoi pas utiliser les globs ?
    Si tu veux lasser dans tes tableaux des fichiers selon leurs extensions ce serait bien utile. Un petit exemple :
    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
     
    #!/usr/bin/perl -w
     
    use Carp;
    use strict;
     
    my(@document);
    my(@picture);
    my(@data);
    my(@tmp) = glob "*.doc";
    push(@data, @tmp);
    @tmp = glob "*.pdf";
    push(@data, @tmp);
    foreach (@data){
    	print $_."\n";
    }
    print"\n";
    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

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

  8. #8
    Membre expérimenté
    Inscrit en
    Février 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 167
    Par défaut
    Citation Envoyé par GLDavid
    Et pourquoi pas utiliser les globs ?
    l'OP dit que c'est des adresses sur le web (des hrefs, je suppose). Pas sûr qu'il soient dans le répertoire courant, donc glob ne marchera pas.

    N

  9. #9
    Membre expérimenté
    Inscrit en
    Février 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 167
    Par défaut
    Citation Envoyé par dirthangel
    Un hash d'array moi je suis preneur de tout les solutions du moment que tu m'explique un minimum comment sa marche !
    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
    my %diispatch = (
        map( { $_, 'data' },qw{ htm asp aspx ...}
        ),
        map( { $_, 'image' }, qw{ jpg gif png swf ... }
        ),
        map( { $_, 'doc'}, qw{ doc rtf txt ...}
        ),
    );
     
    my @source = qw/ a.doc B.DOC, c.jpg, d.mp3 /;
    ny( %resultat );
     
    for my $s( @source ) {
        my ($ext = $s) =~ s/^.*?\.([^.]+)$/lc $1/e;
        push @{$resultat{$dispatch{$ext} || 'iconnu'}}, $s;
    }
    donc on push le fichier/adresse sur un des trois arrays contenu dans resultat selon son extension, et si l'extension est foireuse ou inconnu on le met dans le array $resultat{inconnu}. Pour parcourir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for my $r (keys %resultat) {
        print "$r\n";
        for my $adr( @{$resultat{$r}} ) {
            print "\t$adr\n";
        }
    }
    Beaucoup plus simple !

    N

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 6
    Par défaut
    OK mais j'ai une erreur quand je lance l'analyse de la syntaxe, mais je la trouve pas


    my %diispatch = (
    map( { $_, 'data' }, qw{ htm asp aspx nux mspx cfm html xhtml jhtml php php3 php4 shtml jsp php4 php5 pm }
    ),
    map( { $_, 'image' }, qw{ jpg jpeg png gif }
    ),
    map( { $_, 'doc'}, qw{ doc rtf pdf xls }
    ),
    );
    syntax error at Untitles1 line 2, near "},"

  11. #11
    Membre expérimenté
    Inscrit en
    Février 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 167
    Par défaut
    Citation Envoyé par dirthangel
    OK mais j'ai une erreur quand je lance l'analyse de la syntaxe, mais je la trouve pas


    my %diispatch = (
    map( { $_, 'data' }, qw{ htm asp aspx nux mspx cfm html xhtml jhtml php php3 php4 shtml jsp php4 php5 pm }
    ),
    map( { $_, 'image' }, qw{ jpg jpeg png gif }
    ),
    map( { $_, 'doc'}, qw{ doc rtf pdf xls }
    ),
    );
    syntax error at Untitles1 line 2, near "},"
    ah oui, autant pour moi. Essaies

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    my %dispatch = (
    map( { $_, 'data' } qw{ htm asp aspx nux mspx cfm html xhtml jhtml php php3 php4 shtml jsp php4 php5 pm }
    ),
    map( { $_, 'image' } qw{ jpg jpeg png gif }
    ),
    map( { $_, 'doc'} qw{ doc rtf pdf xls }
    ),
    );
    désolé

    N

  12. #12
    Membre confirmé
    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
    Par défaut
    Moi ma question est comment faire un hash de array en perl et comment ont récupère tout sa dans un autre array pas la suite?

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 73
    Par défaut
    Heum , j'ai moi aussi besoin de déplacer des données mais dans un contexte scalaire.

    Donc j'ai une variale
    $file
    qui contient des chemins de fichiers (locaux), j'utise cette variable comme sa
    print "$file\n";
    Ce que je voudrais c'est envoyé chaque fichier vers sont programme de traintement dédié. par exemple si c'est un fichier doc je fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $file_doc = doc($file_doc);
    ou
    $file_doc
    est la variable ou je met les chemins du fichier doc que je doit trainter.

    Merci d'avance

  14. #14
    Membre confirmé
    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
    Par défaut
    Le scipt de nematoad m'interesse baucoup si ce n'est que j'en comprend pas l'utilisation comment ont récupère les array ?

    @data
    @images
    @doc
    Et a quoi sert @source ?

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

Discussions similaires

  1. Déplacement de données d'un tablespace à un autre
    Par farenheiit dans le forum Administration
    Réponses: 6
    Dernier message: 11/09/2008, 19h04
  2. Déplacement des données sous windows
    Par François Fontaine dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 01/07/2008, 16h50
  3. Déplacement de données dans la meme table
    Par tulipeverte dans le forum Requêtes
    Réponses: 13
    Dernier message: 06/03/2008, 18h15
  4. Déplacement de données
    Par thierrybatlle dans le forum Access
    Réponses: 7
    Dernier message: 20/03/2007, 15h42
  5. Déplacement de données mais dans scalaire
    Par siaoly dans le forum Langage
    Réponses: 1
    Dernier message: 27/07/2005, 00h30

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