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éplacer champs dans un tableau


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de blacksnake
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 64
    Par défaut Déplacer champs dans un tableau
    Salut,

    Poursuivant mon apprentissage en Perl, j'attaque les tableaux
    @database :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    field10;field11;field12;field13;field14
    field20;field21;field22;field23;field24

    La suppression d'un champ x ds un tableau c'est OK
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    foreach  (@database) {
      $a = (split /\;/,$_)[3] ;
      s/$a// and s/\;+/ /g for @database; # suppression du 4ième champ de @database
      print("$a supprimé\n");
    }
    print("\nResultat ap moulinette :\n");
    print $_ for ( @database );
    Je voudrais déplacer le champ 2 à la place du champ 1 pour obtenir :
    field11;field10;field12;field13;field14

    J'ai essayé ceci mais pas de retour d'erreur et il ne se passe rien ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    s/$_[1]/$_[0]/ for @database;
    Merci à vous

  2. #2
    Expert confirmé
    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
    Par défaut
    Citation Envoyé par blacksnake
    @database :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    field10;field11;field12;field13;field14
    field20;field21;field22;field23;field24

    La suppression d'un champ x ds un tableau c'est OK
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    foreach  (@database) {
      $a = (split /\;/,$_)[3] ;
      s/$a// and s/\;+/ /g for @database; # suppression du 4ième champ de @database
      print("$a supprimé\n");
    }
    print("\nResultat ap moulinette :\n");
    print $_ for ( @database );
    Houlà... C'est quoi ce truc ! Comment peux-tu être sûr qu'un champ ne sera pas identique à un autre, ou une partie d'un autre. En plus là tu supprimes le contenu du champ 4 d'une ligne de toutes les autres lignes... Je doute que ce soit ce que tu désires !
    Pour supprimer un champ (et mettre ' ' à la place de ';') ce serait plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for my $line (@database) {
      my @fields = split ';', $line;
      $line = join ' ', @fields[0..1,3..$#fields]; 
    }
    print "\nResultat apres moulinette :\n";
    print @database;
    Pour intervertir deux colonnes, quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for my $line (@database) {
      my @fields = split ';', $line;
      $line = join ' ', @fields[1, 0, 2..$#fields]; 
    }
    print "\nResultat apres moulinette :\n";
    print @database;
    --
    Jedaï

  3. #3
    Membre confirmé Avatar de blacksnake
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 64
    Par défaut
    Impec'

    Merci Jedai

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

Discussions similaires

  1. [Tableaux] Enlever des champs dans un tableau
    Par djudjublondin dans le forum Langage
    Réponses: 5
    Dernier message: 09/12/2007, 20h44
  2. comment formater un champs dans un tableau
    Par isankem dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 15/10/2007, 11h17
  3. [VBA-W2007]masquer un champ dans un tableau croisé dynamique
    Par tazamorte dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/08/2007, 10h25
  4. [MySQL] Comment affiché un résultat avec plusieurs lignes et plusieurs champs dans un tableau
    Par Yagami_Raito dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 15/05/2007, 14h19
  5. Trouver un champ dans un tableau
    Par snaxisnake dans le forum Delphi
    Réponses: 6
    Dernier message: 30/05/2006, 16h37

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