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 :

selection champs dans un fichier


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 selection champs dans un fichier
    Bonjour,

    J'ai un fichier toto dans lequel j'ai des colonnes avec comme séparateur de chams des ";". Il y a x colonnes qui peuvent varier.

    Pour chaque ligne Je souhaiterai récupérer la valeur de ma première colonne en l'affichant et copier le reste des colonnes de cette ligne dans un fichier.

    Avec le script ci-dessous j'arrive à récupérer la valeur de ma première colonne et à l'afficher. Mais je ne sais pas comment récupére les colonnes qui suivent de manière simple.

    Merci pour votre aide



    my $FicTempTravail="C:\toto.txt";
    my $SeparateurChamps=";";

    open (FIC_OUT, "<${PathInitial}/${FicTempTravail}") || die "Ouverture impossible du fichier ${FicTempTravail}: $!";

    while ($Ligne = <FIC_OUT> )
    {
    my ($NomAdherent,undef) = split(/\s*${SeparateurChamps}\s*/,$Ligne) ;
    print ">$NomAdherent<\n";
    print "$Ligne\n";
    }
    close (FIC_OUT);

  2. #2
    Membre régulier
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Décembre 2012
    Messages : 43
    Points : 91
    Points
    91
    Par défaut
    quand tu splittes la ligne du fichier, il faut juste récupérer dans un tableau ce que te renvoies la fonction 'split' :

    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
    my $fichierTravail = "C:\toto.txt";
    my $fichierOut = "C:\toto_out.txt";
    my $separateurChamps = ";";
    my $ligne;
    my @tab = ();
    my $nomAdherent;
     
    open ( FIC_IN, "<$fichierTravail" ) || die "Ouverture impossible du fichier $FicTempTravail: $!";
    open ( FIC_OUT, ">$fichierOut" ) || die "Ouverture impossible du fichier fichierOut: $!";
     
    while (<FIC_IN> ) {
      $ligne = $_;
      ( $nomAdherent, @tab ) = split( /$separateurChamps/, $ligne) ;
      print ">$nomAdherent<\n";
      print FIC_OUT join( ';', @tab);
    }
    close (FIC_IN);
    close (FIC_OUT);
    Voici le code que je testerais (compil et fonctionnement non vérifié).
    Saaaaluuut Nounou!!

  3. #3
    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

  4. #4
    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 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    Plutôt que:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ( $nomAdherent, @tab ) = split( /$separateurChamps/, $ligne) ;
    j'écrirais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ( $nomAdherent, $reste_de_la_ligne ) = split( /$separateurChamps/, $ligne, 2) ;
    C'est plus rapide et il n'y a pas besoin de join ensuite pour imprimer le $reste_de_la_ligne.

Discussions similaires

  1. [XML] Extraire la valeur d'un champ dans un fichier XML
    Par dinozo13 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 06/10/2008, 12h53
  2. Lire des champs dans une fichier texte
    Par darkman13130 dans le forum C++Builder
    Réponses: 17
    Dernier message: 06/06/2008, 16h31
  3. Comment selectionné UN champs dans un fichier
    Par shoofleouf dans le forum Linux
    Réponses: 2
    Dernier message: 08/11/2007, 16h52
  4. recuperer 2 champs dans un fichier
    Par vince2005 dans le forum Langage
    Réponses: 1
    Dernier message: 28/09/2007, 16h33
  5. Insertion de champs dans un fichier
    Par flouflou dans le forum Linux
    Réponses: 3
    Dernier message: 16/08/2004, 14h48

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