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 :

question split


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 197
    Par défaut question split
    Bonjour a tous,
    j ai une petite question concernant un split !!

    Je souhaiterais parcourir un fichier ou je voudrais spliter /ancien_chemin_des_lib/ par /nouveau_chemin_lib/ ?

    Quelqu un a une idee comment proceder ? Peut on ecrire le resultat directement a la place de ce que l'on a selectionner ? L interet c est d eviter de passer dans chaque fichier perl pour modifier les chemins d acces aux fichiers et lib lors de la migration du projet.
    Merci d avance

    Jules

  2. #2
    Mr6
    Mr6 est déconnecté
    Membre émérite

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 608
    Par défaut
    split sert juste à faire du découpage, pas du remplacement.
    pour remplacer, il te faut utiliser la fonction de substitution s///

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 197
    Par défaut
    Oki je vais yeuter merci !!!
    Jules

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 197
    Par défaut
    Voila je me suis lance dans la substitution !!!
    Voici mon code mais je ne sais pas comment reecrire le resultat directement dans le fichier ou motif selectionné.


    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
    39
    40
    41
    42
     
    #!/usr/bin/perl
     
    use strict ;
    my @Fichiers_Tous;  #On a tous les fichiers du repertoire courant
    my @Fichiers_PL_PM; #On a un tableau contenant les fichiers PL et PM
    my $Fichier_Courant;#On a le fichier courant
    my $Ligne_Fichier_Courant;
    ###########################
    my @tata;
    my $Nouveau_chemin="use lib '/toto/tata'";
     
    opendir Repertoire, "." or die "$!\n"; #Ouverture du repertoire courant grace au point "."
    @Fichiers_Tous = readdir Repertoire;   #Ici on place tous les fichiers dans le tableau @Fichiers_Tous
    for  $Fichier_Courant (@Fichiers_Tous )#On parcours le tableau @Fichiers_Tous
                                           #et l on place ligne par ligne dans $Fichier_Courant
    {
            next if $Fichier_Courant eq "." or $Fichier_Courant eq "..";#On zappe cees deux repertoires speciaux
            if($Fichier_Courant=~/\.pl$/ or $Fichier_Courant=~/\.pm$/)  #On selectionne que les fichiers PM et PL
            {
                    push(@Fichiers_PL_PM, $Fichier_Courant);            #On place les fichier trouves pl
                                                                        #et pm dans le tableau @Fichiers_PL_PM
            }
    }
    print "\n";
    #On parcours ligne par ligne le tableau contenant les fichiers pm et pl
    foreach $Fichier_Courant (@Fichiers_PL_PM)
    {
            print "###$Fichier_Courant###\n";
     
            ##Cas pour le chemin des librairies on va remplacer
            open(Fichier_courant,$Fichier_Courant)|| die ("Problemes de fichiers:\n $! ");
            print"\n###$Fichier_Courant###\n";
            while ($Ligne_Fichier_Courant = <Fichier_courant> )
            {
                    print"\n##$Ligne_Fichier_Courant\n##";
                    @tata   =s/use/$Nouveau_chemin/;
                    #print"## @tata ##";
            }
            print"## @tata ##";
            close Fichier_courant;
    }
    Je sais pas coment faire !!! Le but etant de remplacer les chemins d acces en de migration d projet et ca evite de mettre les chemins a jour dans chaque fichier !!!
    Merci d avance
    Jules

  5. #5
    Mr6
    Mr6 est déconnecté
    Membre émérite

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 608
    Par défaut
    l'autre jour je ne sais plus qui a parlé d'un module qui t'aiderait dans ce que tu veux faire, il permet de modifier le fichier lorsque tu modifies le tableau qui pointe dessus. je crois que c'est gldavid qui en a parlé. fais une recherche

    le voilà : Tie::File

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

Discussions similaires

  1. Question sur String[] split()
    Par k3nsou dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 24/04/2009, 10h05
  2. Question sur le Split()
    Par chris81 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 12/12/2008, 18h02
  3. Réponses: 6
    Dernier message: 17/09/2007, 16h46
  4. question fonction split
    Par fessebleu dans le forum Langage
    Réponses: 2
    Dernier message: 28/05/2006, 02h33
  5. Réponses: 5
    Dernier message: 13/10/2005, 12h46

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