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 :

probleme de 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 probleme de split
    Bonjour a tous,
    je souhaite creer un fichier qui me permettra de mettre les chemins des librairies a jour. Cependant j ai un petit probleme concernant le resultat.

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    #!/usr/bin/perl
     
    use strict ;
    my $Fichier_Courant="sous_fonc_traitement_groupe_partie_2.pm";          #On a le fichier courant
    my $Chemin =`pwd`;              #On recupere le chemin courant grace a la commande pwd!!!!!
    print"#Sans chomp#$Chemin##";
    chomp ($Chemin);                #Cette commande permet de supprimer le caratere de fin de ligne
    print"#Apres chomp#$Chemin##";
     
    #########################################################################
    #---------------sous_fonc_traitement_groupe_partie_2.pm
    #########################################################################
     
    my $Traitement_Lib_Ancien="use lib '.*';";
    my $Traitement_Lib_Nouveau="use lib '$Chemin';";
     
    my $Traitement_CAM_SANS_Doublon_Ancien = "open(Fichier_CAM_groupe_courant,\".*/fichier_CAM_groupe_courant_sans_doublons\") || die (\"Fichier contenant la table CAM du groupe courant traitement\\n \$! \");";
    my $Traitement_CAM_SANS_Doublon_Nouveau ="open(Fichier_CAM_groupe_courant,\"$Chemin/fichier_CAM_groupe_courant_sans_doublons\") || die (\"Fichier contenant la table CAM du groupe courant traitement\\n \$! \");";
     
    my $Traitement_ARP_Formate_Ancien="open(Fichier_ARP_groupe_courant_formate,\".*/fichier_ARP_groupe_courant_formate\") || die (\"Fichier contenant la table ARP du groupe courant traitement\\n \$! \");";
    my $Traitement_ARP_Formate_Nouveau="open(Fichier_ARP_groupe_courant_formate,\"$Chemin/fichier_ARP_groupe_courant_formate\") || die (\"Fichier contenant la table ARP du groupe courant traitement\\n \$! \");";
     
    #########################################################################
    #########################################################################
            open(FD, "<$Fichier_Courant");#On ouvre le fichier en lecture seule
            open(FD2, ">$Fichier_Courant" . ".old"); #On archive le fichier avec les bons chemins en rajoutant .old
            while (<FD>)               #On parcour le fichier FD
            {
                    print"\n#####$_####\n";
                    ##Ici on va mettre a jour le chemin de librairie
                    #########################################################################
                    #---------------sous_fonc_traitement_groupe_partie_2.pm
                    #########################################################################
     
                    s/$Traitement_Lib_Ancien/$Traitement_Lib_Nouveau/g;
     
                    s/$Traitement_CAM_SANS_Doublon_Ancien/$Traitement_CAM_SANS_Doublon_Nouveau/g;
     
    #               s/$Traitement_ARP_Formate_Ancien/$Traitement_ARP_Formate_Nouveau/gx;
     
                    #print"\n#apres#$_##\n";
                    print FD2 $_;
                    #Ici on imprime la ligne courante du fichier lu avec le nouveau chemin si besoin dans dans le nom_du_fichier.old
            }
            close(FD);
            close(FD2);
            unlink($Fichier_Courant);
     
    ##########################
    #Ici on fait l inverse on prend le .old pour
    #ecraser l ancien car il a ete ferme precedmment
            open(FD, $Fichier_Courant . ".old");
            open(FD2, ">$Fichier_Courant");
            while (<FD>)
            {
                print FD2 $_;               #On recupere la ligne modifiee si besoin
            }
            close(FD);
            close(FD2);
            unlink($Fichier_Courant . ".old");      #Ici supprime le fichier.old
            chmod(0777,$Fichier_Courant);   #On redonne les droits d acces
    Ca c est mon code et voici le contenu du fichier quil doit modifier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
             open(Fichier_CAM_groupe_courant,"/home/rappju/projet_2/fichier_CAM_groupe_courant_sans_doublons") || die ("Fichier contenant la table CAM du groupe courant traitement\n $! ");
            #open(Fichier_CAM_groupe_courant,"/home/rappju/projet_2/fichier_CAM_groupe_courant") || die ("Fichier contenant la table CAM du groupe courant\n $! ");
            open(Fichier_ARP_groupe_courant_formate,"/home/rappju/projet_2/fichier_ARP_groupe_courant_formate") || die ("Fichier contenant la table ARP du groupe courant traitement\n $! ");
    Voici les lignes qui doivent etre modifiees.
    Le probleme c est que dans le fichier final j obtient que des choses pas bonnes du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ant la table CAM du groupe courant traitement\n $! ");_open(Fichier_CAM_groupe_courant,"/var/home/rappju/projet_2_bis/fichier_CAM_groupe_courant_sans_doublons") || die ("Fichier contenant la table CAM du groupe courant traitement\n $! ");eopen(Fichier_CAM_groupe_courant,"/var/home/rappju/projet_2_bis/fichier_CAM_groupe_courant_sans_doublons") || die ("Fichier contenant la table CAM du groupe courant traitement\n $! ");topen(Fichier_CAM_groupe_courant,"/var/home/rappju/projet_2_bis/fichier_CAM_groupe_courant_sans_doublons") || die ("Fichier contenant la table CAM du groupe courant traitement\n $! ");_open(Fichier_CAM_groupe_courant,"/var/home/rappju/projet_2_bis/fichier_CAM_groupe_courant_sans_doublons") || die ("Fichier contenant la table CAM du groupe courant traitement\n $! ");Aopen(Fichier_CAM_groupe_courant,"/var/home/rappju/projet_2_bis/fichier_CAM_groupe_courant_sans_doublons") || die ("Fichier contenant la table CAM du groupe courant traitement\n $! ");Ropen(Fichier_CAM_groupe_courant,"/var/home/rappju/projet_2_bis/fichier_CAM_groupe_courant_sans_doublons") || die ("Fichier contenant la table CAM du groupe courant traitement\n $! ");Popen(Fichier_CAM_groupe_courant,"/var/home/rappju/projet_2_bis/fichier_CAM_groupe_courant_sans_doublons") || die ("Fichier contenant la table CAM du groupe courant traitement\n $! ");_open(Fichier_CAM_groupe_courant,"/var/home/rappju/projet_2_bis/fichier_CAM_groupe_courant_sans_doublons") || die ("Fichier contenant la table CAM du groupe courant traitement\n $! ");popen(Fichier_CAM_groupe_courant,"/var/home/rappju/projet_2_bis/fichier_CAM_groupe_courant_sans_doublons") || die ("Fichier contenant la table CAM du groupe courant traitement\n $! ");aopen(Fichier_CAM_groupe_courant,"/var/home/rappju/projet_2_bis/fichier_CAM_groupe_courant_sans_doublons") || die ("Fichier contenant la table CAM du groupe courant traitement\n $! ");ropen(Fichier_CAM_groupe_courant,"/var/home/rappju/projet_2_bis/fichier_CAM_groupe_courant_sans_doublons") || die ("Fichier contenant la table CAM du groupe courant traitement\n $! ");topen(Fichier_CAM_groupe_courant,"/var/home/rappju/projet_2_bis/fichier_CAM_groupe_courant_sans_doublons") || die ("Fichier contenant la table CAM du groupe courant traitement\n $! ");iopen(Fichier_CAM_groupe_courant,"/var/home/rappju/projet_2_bis/fichier_CAM_groupe_courant_sans_doublons") || die ("Fichier contenant la table CAM du groupe courant traitement\n $! ");eopen(Fichier_CAM_groupe_courant,"/var/home/rappju/projet_2_bis/fichier_CAM_groupe_courant_sans_doublons") || die ("Fichier contenant la table CAM du groupe courant traitement\n $! ");_open(Fichier_CAM_groupe_courant,"/var/home/rappju/projet_2_bis/fichier_CAM_groupe_courant_sans_doublons") || die ("Fichier contenant la table CAM du groupe courant traitement\n $! ");2open(Fichier_CAM_groupe_courant,"/var/home/rappju/projet_2_bis/fichier_CAM_groupe_courant_sans_doublons") || die ("Fichier contenant la table CAM du groupe courant traitement\n $! ");;open(Fichier_CAM_groupe_courant,"/var/home/rappju/projet_2_bis/fichier_CAM_groupe_courant_sans_doublons") || die ("Fichier contenant la table CAM du groupe courant traitement\n $! ");
    open(Fichier_CAM_groupe_courant,"/var/home/rappju/projet_2_bis/fichier_CAM_groupe_courant_sans_doublons") || die ("Fichier contenant la table CAM du groupe courant traitement\n $! ");##
    Je sais ca peut paraitre barbare mais bon j ai besoin d un coup de main.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 427
    Par défaut
    si tu veux un conseil, kand tu a un probleme essai de bien l'isoler (de le reproduire avec le moins de lignes possibles) plutot qu' d'envoyer ton scrip entier: tu aura plus de reponses.
    Pasque perso kand je vois une question accompagnée d'un script de 200 lignes j'ai un peu la flemme de tout me tapper

  3. #3
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 606
    Par défaut
    D'accord avec Pospos, d'autant plus que sous ma conf du boulot, j'ai des ascenseurs horizontaux et verticaux sur tout ton code, je ne le vois pas en entier à l'écran



    Commence par modifier ta ligne 1 en la remplaçant par :

    #!/usr/bin/perl -w

Discussions similaires

  1. Probleme avec split sur ¤
    Par jokerparis dans le forum Langage
    Réponses: 15
    Dernier message: 30/05/2007, 19h07
  2. probleme fonction split
    Par Alex35 dans le forum ASP
    Réponses: 1
    Dernier message: 27/11/2006, 17h58
  3. Probleme de split
    Par jbfuzier dans le forum Flash
    Réponses: 4
    Dernier message: 14/05/2006, 19h33
  4. [DEBUTANT] probleme avec split ?
    Par matN59 dans le forum ASP
    Réponses: 6
    Dernier message: 23/10/2004, 15h47
  5. [langage] Problem avec split
    Par Ludo167 dans le forum Langage
    Réponses: 4
    Dernier message: 08/07/2004, 14h42

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