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 :

recuperation element tableau


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Points : 69
    Points
    69
    Par défaut recuperation element tableau
    Bonjour,

    J'ai un fichier avec des lignes contenant un séparateur. Je mets chacun de ces éléments dans un tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    @TableauLigne = split ( /${Separateur}/, ${Ligne} ) ;
    Je récupére le nombre d'éléments du tableau, on en compte 8 ou 9
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    my $NbreColonneTotal= scalar(@TableauLigne);
    Je souhaite reconstituer ma ligne en faisant abstraction de ma colonne 3.
    Comment puis je faire ?
    Il faut que je récupère mes éléments 1,2,4,5,6,7,8

    Comment puis je faire ?

    Merci

  2. #2
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut Code supprimé : annerie
    Bonjour,
    Ben si tu ne récupères jamais le 9ème :

    File.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Un Deux Trois Quatre Cinq Six Sept Huit Neuf
    Un Deux Trois Quatre Cinq Six Sept Huit Neuf
    Un Deux Trois Quatre Cinq Six Sept Huit
    Un Deux Trois Quatre Cinq Six Sept Huit Neuf
    Un Deux Trois Quatre Cinq Six Sept Huit Neuf
    Un Deux Trois Quatre Cinq Six Sept Huit
    Un Deux Trois Quatre Cinq Six Sept Huit
    Un Deux Trois Quatre Cinq Six Sept Huit Neuf
    [EDIT 17:05] code supprimé voir correction ci-dessous

  3. #3
    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
    Plus simple est l'usage des slices :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print join " ", @TableauLigne[0..1,2..$#@TableauLigne];
    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

  4. #4
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Points : 69
    Points
    69
    Par défaut
    en fait, ça ne répond pas à ma question, car mon nombre de colonne peut varier suivant les fichiers
    et je souhaite reconstituer le fichier sans prendre en compte la colonne 2 ou 3 ou 4 ou 5...


    N'y aurait il pas un commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $Tableau[1]  $Tableau[4..6]

  5. #5
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Points : 69
    Points
    69
    Par défaut
    Merci pour la commande, mais il n'aime pas $#@TableauLigne

    J'ai l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Bareword found where operator expected at script.pl line 93, n
            (Missing operator before TableauLigne?)
    syntax error at script.pl line 93, near "$#@TableauLigne"
    Execution of script.pl aborted due to compilation errors.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print join " ", @TableauLigne[0..1,2..$#@TableauLigne];
    [/QUOTE]


    Merci pour ton aide

  6. #6
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Philou67430 veut certainement écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print join " ", @TableauLigne[0..1,3..$#TableauLigne], "\n";
    Mais ça ne correspond pas, car :
    et je souhaite reconstituer le fichier sans prendre en compte la colonne 2 ou 3 ou 4 ou 5...
    Commme ci-dessus en jouant avec des variables et des conditions suivant 2 ou 3 ou 4 ou 5...
    Il me semble... faut-il encore connaître les conditions... qu'il y en ait pas une centaine...

  7. #7
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Points : 69
    Points
    69
    Par défaut
    en fait, j'ai un fichier avec des séparateur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    disque;ampoule;maison;immeuble;lumière;
    En fonction du paramètre que je veux passer -ct 3, je veux supprimer ma colonne 3 donc ;maison; et reconstituer ma ligne.

    pour avoir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    disque;ampoule;immeuble;lumière;

  8. #8
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    A la louche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    my $ct = shift;
    print "CT=$ct\n";
    ...
     
    print join " ", @TableauLigne[0..$ct,$ct+2..$#TableauLigne], "\n";
    Je te laisse affiner les histoires d'intervalles et de piquets...


    [EDIT 16:27] NON il y a une grosse bourde !
    Code supprimé, voir le suivant

  9. #9
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Désolé, Je corrige (toujours à la louche) :
    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
    #!/usr/bin/perl
    use strict;
    use warnings;
    use utf8;
     
    my $ct = shift;
    print "CT=$ct\n";
    my $File = "File.txt";
    my ( @Tableau ) = ();
     
    open( my $FIC, '<:utf8',$File) or die("\nAno ouverture $File : \n$!");
     
    while( <$FIC> ) {
    	@Tableau = split ( / / );
    	print join " ", @Tableau[0..$ct,$ct+2..$#Tableau], "\n";
    }
     
    close($FIC);

  10. #10
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Points : 69
    Points
    69
    Par défaut
    comment savoir si c'est +1 +2


  11. #11
    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
    Tu peux aussi écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    my $colonne_a_supprimer = 3;
    my $colonnes_a_garder = grep $_ != $colonne_a_supprimer, 0..$#TableauLigne;
    print join ";", @TableauLigne[@colonnes_a_gerder];
    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

  12. #12
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Peut-être simplement ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    my $ct = shift;
    while (<>) {
        print join $sep, (split /$sep/, $_)[0..$ct-1, $ct+1..8];
    }
    Ou, plus simple, si le séparateur est l'espace:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    my $ct = shift;
    while (<>) {
        print join " ", (split)[0..$ct-1, $ct+1..8];
    }

  13. #13
    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
    L'idée d'utiliser une liste de colonne à conserver vient du fait que :
    - dans un premier temps, j'ai eu un doute sur le comportement aux limites ($ct == 0 ou $ct == $#Table) conduisant (si le tableau fait 8 éléments) à un slice du type @Table[0..-1,1..8] ou @Table[0..7,9..8], mais il semble que cela fonctionne comme on pourrait s'y attendre
    - l'usage de la liste de colonne permet de s'affranchir du nombre de colonne à supprimer (dans le cas initial, 1, mais on ne sait pas si c'est le seul cas envisagé)
    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

  14. #14
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Bonjour,
    Citation Envoyé par Philou67430 Voir le message
    L'idée d'utiliser une liste de colonne à conserver vient du fait que :
    - dans un premier temps, j'ai eu un doute sur le comportement aux limites ($ct == 0 ou $ct == $#Table) conduisant (si le tableau fait 8 éléments) à un slice du type @Table[0..-1,1..8] ou @Table[0..7,9..8], mais il semble que cela fonctionne comme on pourrait s'y attendre
    - l'usage de la liste de colonne permet de s'affranchir du nombre de colonne à supprimer (dans le cas initial, 1, mais on ne sait pas si c'est le seul cas envisagé)
    J'aime bien cette solution car en effet on peut supprimer plusieurs colonnes.
    J'ai fait qq essais, pour jouer, comme dab, il y a un warnig et un effet de bord que je ne maîtrisent pas...

    - le warnig :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Possible precedence problem on bitwise & operator at SupCol_2.pl line 25.
    Mais je ne sais pas si je code correctement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my @colonnes_a_garder = grep $_ != $ct1-1 & $_ != $ct2-1 & $_ != $ct3-1,00..$#TableauLigne;
    - l'effet de bord sur le retour à la ligne seulement si la ligne compte un seul élément de plus à supprimer que n'en donne le split :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Philou67430
    Deux;Quatre;Six;Sept;Huit;Neuf;Dix;
    Deux;Quatre;Six;Sept;Huit;Neuf;
    Deux;Quatre;Six;Sept;Huit;
    Deux;Quatre;Six;Sept;Huit;Neuf;
    ampoule;chaiseDeux;Quatre;Six;Sept;Huit;Neuf;
    Deux;Quatre;Six;Sept;Huit;
    Deux;Quatre;Six;Sept;
    Deux;Quatre;Six;Sept;Huit;Neuf
    E:\_DEV\vince2005>
    Dans tous les autres cas c'est OK

    Dans le cas de Lolo78 on a un warnig pour chaque ligne dont le nb de mot ne correspond pas exactement au split.
    Dans cette syntaxe est-il possible d'avoir la fin du tableau sous forme d'une variable ?

    Pour jouer :
    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
    #!/usr/bin/perl
    use strict;
    use warnings;
    use utf8;
     
    my $ct1 = shift;
    my $ct2 = shift;
    my $ct3 = shift;
    print "CT=$ct1   $ct2    $ct3\n";
    my $File = "SupCol.txt";
    my ( @TableauLigne ) = ();
     
    open( my $FIC, '<:utf8',$File) or die("\nAno ouverture $File : \n$!");
    while( <$FIC> ) {
    	@TableauLigne = split ( /;/ );
    	print join ";", @TableauLigne[0..$ct1-2,$ct1..$#TableauLigne];
    }
    close($FIC);
     
    # OU Philou67430
    print "\n\nPhilou67430\n";
    open( $FIC, '<:utf8',$File) or die("\nAno ouverture $File : \n$!");
    while( <$FIC> ) {
    	@TableauLigne = split ( /;/ );
    	my @colonnes_a_garder = grep $_ != $ct1-1 & $_ != $ct2-1 & $_ != $ct3-1,00..$#TableauLigne;
    	print join ";", @TableauLigne[@colonnes_a_garder];
    }
    close($FIC);
    =pod
    # OU Lolo78
    print "\n\nLolo78\n";
    open( $FIC, '<:utf8',$File) or die("\nAno ouverture $File : \n$!");
    my $sep = ";";
    while( <$FIC> ) {
    	#print join $sep, (split /$sep/, $_)[0..$ct1-2, $ct1..8];
    	print join " ", (split)[0..$ct1-1, $ct1+1..3];
    }
    close($FIC);
    SupCol.txt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Un;Deux;Trois;Quatre;Cinq;Six;Sept;Huit;Neuf;Dix;
    Un;Deux;Trois;Quatre;Cinq;Six;Sept;Huit;Neuf;
    Un;Deux;Trois;Quatre;Cinq;Six;Sept;Huit;
    Un;Deux;Trois;Quatre;Cinq;Six;Sept;Huit;Neuf;
    disque;ampoule;immeuble;chaise;
    Un;Deux;Trois;Quatre;Cinq;Six;Sept;Huit;Neuf;
    Un;Deux;Trois;Quatre;Cinq;Six;Sept;Huit;
    Un;Deux;Trois;Quatre;Cinq;Six;Sept;
    Un;Deux;Trois;Quatre;Cinq;Six;Sept;Huit;Neuf;

  15. #15
    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
    Je n'ai pas regardé l'effet de bord, mais en revanche, tu devrais utiliser le "et logique" (&&) au lieu du "et bit à bit" (&), car la précédence et le résultat sont complètement différents.
    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

  16. #16
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Citation Envoyé par Philou67430
    tu devrais utilise le "et logique" (&&) au lieu du "et bit à bit" (&), car la précédence et le résultat est complètement différent.
    Oui j'en étais arrivé au bit à bit car je n'y arrivais pas avec (&&).
    Mais là en refaisant au calme c'est OK sans warnig, hormis le \n :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my @colonnes_a_garder = grep $_ != $ct1-1 && $_ != $ct2-1 && $_ != $ct3-1,00..$#TableauLigne;
    Je résous bien sûr le pb du \n avec chomp, mais c'était au cas où il y aurait eu un truc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # OU Philou67430
    print "\n\nPhilou67430\n";
    open( $FIC, '<:utf8',$File) or die("\nAno ouverture $File : \n$!");
    while( <$FIC> ) {
    	chomp;
    	@TableauLigne = split ( /;/ );
    	my @colonnes_a_garder = grep $_ != $ct1-1 && $_ != $ct2-1 && $_ != $ct3-1,00..$#TableauLigne;
    	print join ";", @TableauLigne[@colonnes_a_garder];
    	print "\n";
    }
    close($FIC);
    MERCI !

  17. #17
    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
    Si tu veux t'épargner les -1 dans l'expression (assez "disgracieux" donc "perturbateur" de lecture) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my @colonnes_a_garder = grep $_ != $ct1-1 && $_ != $ct2-1 && $_ != $ct3-1,00..$#TableauLigne;
    tu peux écrire, avant le while :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $_-- foreach $ct1, $ct2, $ct3; # numéro => index de tableau
    while ... {
    ...
      my @colonnes_a_garder = grep $_ != $ct1 && $_ != $ct2 && $_ != $ct3,00..$#TableauLigne;
    ...
    }
    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

  18. #18
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Si tu veux t'épargner les -1 dans l'expression (assez "disgracieux" donc "perturbateur" de lecture) :
    Oui, c'était pour l'utilisateur... 0 c'est la colonne 1, 1 c'est la colonne 2...

    Mais comme c'est vraiment disgracieux et perturbateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    my $ct1 = shift;
    my $ct2 = shift;
    my $ct3 = shift;
    $ct1--;
    $ct2--;
    $ct3--;
     
    ...
     
    my @colonnes_a_garder = grep $_ != $ct1 && $_ != $ct2 && $_ != $ct3,00..$#TableauLigne;
    Puisque tu es super disponible, mais seulement quand, et si, tu as le temps...
    Serait-il possible de gérer un intervalle, j'ai essayé mais évidemment c'est pas bon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my @colonnes_a_garder = grep $_ > $ct1 && $_ < $ct2,00..$#TableauLigne;

  19. #19
    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
    Peut-être manque-t-il des parenthèses pour forcer l'ordre des opérations ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my @colonnes_a_garder = grep ($_ > $ct1) && ($_ < $ct2),00..$#TableauLigne;
    Sans plus d'explication sur ce qui ne va pas, je ne vois pas d'autre source d'erreur.
    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

  20. #20
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Points : 69
    Points
    69
    Par défaut
    je voulais vous remercier, ça fonctionne !

    Et si par exemple, je veux supprimer plusieurs colonnes ? que je passe en paramétre 2,3

Discussions similaires

  1. recuperer un tableau d'input en js
    Par smarties dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 01/06/2006, 21h58
  2. recuperer un tableau de checkbox
    Par jojo22222 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/05/2006, 08h43
  3. Réponses: 5
    Dernier message: 10/04/2006, 15h12
  4. [Tableaux] Recuperer un tableau
    Par cescu dans le forum Langage
    Réponses: 5
    Dernier message: 17/02/2006, 18h06
  5. Recuperer un tableau php dans javascript
    Par 17mounir dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/08/2005, 09h07

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