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 :

Comment créer un fichier txt a partir d'un autre fichier txt ?


Sujet :

Langage Perl

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Points : 39
    Points
    39
    Par défaut Comment créer un fichier txt a partir d'un autre fichier txt ?
    Bonjour a tous
    je sais que le titre de mon message n'est pas très clair, mais je ne voyais pas comment définir ca autrement
    J'explique mon problème plus en détails.

    En fait, j'ai les 2 lignes suivantes dans un fichier texte (nommé unix.txt) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dn: ou=textearemplacer,ou=carnets,dc=ifremer,dc=fr
    objectclass: organizationalUnit
    Et dans un autre fichier texte (nommé groupe.txt), j'ai a chaque ligne un nom de groupe. Ce que j'essaye de faire, c'est d'écrire un script qui va recréer les 2 lignes de codes du fichier "unix.txt" en remplacant à chaque fois la valeur de "textearemplacer" par le nom de groupe qui sera lu dans le fichier "groupe.txt".

    Je vois pas trop comment m'y prendre
    Pourriez vous m'aidez ??

    Merci

  2. #2
    Membre habitué Avatar de minus
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 153
    Points : 177
    Points
    177
    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
    14
    15
     
    my $group;  #tu recuperes le nom du groupe de la facon que tu veux dans ton fichier group.txt
     
     
    open ( UNIX, "< unix.txt" ) or die;
    my $string = "";
    while ( defined( $l = <UNIX> ) ) {
        $l =~ s/textearemplacer/$group/ ;
        $string = $string.$l ;
    }
    close (UNIX);
     
    open ( NOUVEAU, ">> nouveau.txt") ; 
    print (NOUVEAU $string);
    close (NOUVEAU);
    Ca va mettre ce que tu veux dans le fichier nouveau.txt
    Science sans conscience n'est que ruine de l'âme

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Points : 39
    Points
    39
    Par défaut
    Merci je vais tester ca

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Points : 39
    Points
    39
    Par défaut
    Merci pour ton code, ca marche presque parfaitement
    en effet, le programme me saute une ligne à chaque fois après avoir remplacer "textearemplacer", et je n'arrive pas à empecher ca !

    ca donne ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dn: ou=exemple1
    ,ou=carnets,dc=plop,dc=fr
    objectclass: organizationalUnit
    au lieu de ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dn: ou=exemple1,ou=carnets,dc=plop,dc=fr
    objectclass: organizationalUnit
    Comment faire pour empecher le saut de ligne après "exemple1"?

    Voici le code que j'ai utilisé :

    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
    my $fic = "tri_alpha.txt";
    	open MONFIC, "<$fic" or die "Impossible de lire le fichier $fic\n";
    #Lecture ligne à ligne
    	while( my $ligne = <MONFIC> ){
    	my $groupe = $ligne;
    	open (UNIX, "<groupe.ldif" ) or die;
    	my $string = "";
    	while (defined($l =<UNIX>)){
    		$l =~ s/textearemplacer/$groupe/;
    		$string = $string.$l;
    	}
    	close (UNIX);
    	open ( NOUVEAU, ">>liste_unix.ldif") ;
    	print (NOUVEAU $string);
    	close (NOUVEAU);
     
    	print "$string";}
    #Fermeture du fichier
    close MONFIC;
    Merci de m'aider

  5. #5
    Expert éminent
    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
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par Oli_Ifre
    Merci pour ton code, ca marche presque parfaitement
    en effet, le programme me saute une ligne à chaque fois après avoir remplacer "textearemplacer", et je n'arrive pas à empecher ca !
    C'est parce que tu oublies de chomp()er le groupe.

    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
    #!/usr/bin/perl
    use strict; use warnings;
     
    my $grps_filename = "tri_alpha.txt";
    my $ldif_src_filename = "groupe.ldif";
    my $ldif_out_filename = "liste_unix.ldif";
    open my($grps), '<', $grps_filename
        or die "Impossible de lire le fichier $grps_filename : $!\n";
    open my($ldif_src), '<', $ldif_src_filename
        or die "Impossible de lire le fichier $ldif_src_filename : $!\n";
    open my($ldif_out), '>>', $ldif_out_filename
        or die "Impossible de lire le fichier $ldif_out_filename : $!\n";
     
    my $ldif = do { local $/; <$ldif_src> };
    close $ldif_src;
     
    while( my $groupe = <$grps> ){
        chomp($groupe);
        my $new_ldif = $ldif;
        $new_ldif =~ s/textearemplacer/$groupe/g;
        print $ldif_out $new_ldif;
        print $new_ldif;
    }
    close $ldif_out;
    close $grps;
    --
    Jedaï

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Points : 39
    Points
    39
    Par défaut
    merci ca marche nickel maintenant

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 04/03/2015, 16h15
  2. Réponses: 5
    Dernier message: 17/07/2014, 15h44
  3. [XL-2010] Macro pour Ouvrir un fichier Excel a partir d'un autre fichier Excel
    Par jérémyp8 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/06/2013, 13h27
  4. Réponses: 2
    Dernier message: 19/09/2006, 13h26
  5. [FPDF] Créer un fichier PDF à partir d'un autre fichier PDF
    Par axel-erator dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 18/06/2006, 23h29

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