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 utiliser ini en Perl


Sujet :

Langage Perl

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 183
    Points : 32
    Points
    32
    Par défaut Comment utiliser ini en Perl
    Bonjour à tous,

    Dans mon code j'ai des chemins absolu je ne souhaite pas les voir apparaître dans mon code
    Voici mon code :
    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
     
    use strict;
    use warnings;
     
    sub GetFilesList
    {
            my $Path = $_[0];
            my $FileFound;
            my @FilesList=();
     
            ## Lecture de la liste des fichiers
            opendir (my $FhRep, $Path)
                    or die "Impossible d'ouvrir le repertoire $Path\n";
            my @Contenu = grep { !/^\.\.?$/ } readdir($FhRep);
            closedir ($FhRep);
     
            foreach my $FileFound (@Contenu) {
                    ## Traitement des fichiers
                    if ( -f "$Path/$FileFound") {
                            push ( @FilesList, "$Path/$FileFound" );
                    }
                    ## Traitement des repertoires
                    elsif ( -d "$Path/$FileFound") {
                            ## Boucle pour lancer la recherche en mode recursif
                            push (@FilesList, GetFilesList("$Path/$FileFound") );
                    }
     
            }
            return @FilesList;
    }
    my @Files = GetFilesList ('C:/Users/baranowp/Documents/2016_01_07_08/facture/');
    foreach my $File  (@Files) { 
    	next unless $File =~ /\.txt$/i;
    	print "$File \n";
    }
    @Files = GetFilesList ('C:/Users/baranowp/Documents/2016_02_04_05/bulletin_paie/');
    foreach my $File  (@Files) { 
    	next unless $File =~ /\.txt$/i;
    	print "$File \n";
    }
    De ce fait je pense stocker tout les chemins absolu ou relatif dans un fichier d'initialisation
    mon fichier ini contient :
    [repertoire]
    $repfacture = C:/Users/baranowp/Documents/2016_01_07_08/facture/
    $repbulletin = C:/Users/baranowp/Documents/2016_02_04_05/bulletin_paie/

    Comment faire appel au fichier ini dans mon programme ? J'ai essayé avec la fonction require
    Dont voici le code :
    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
     
    use strict;
    use warnings;
     
    require fichier; ## fichier.ini##
     
    sub GetFilesList 
    {
            my $Path = $_[0];
            my $FileFound;
            my @FilesList=();
     
            ## Lecture de la liste des fichiers
            opendir (my $FhRep, $Path)
                    or die "Impossible d'ouvrir le repertoire $Path\n";
            my @Contenu = grep { !/^\.\.?$/ } readdir($FhRep);
            closedir ($FhRep);
     
            foreach my $FileFound (@Contenu) {
                    ## Traitement des fichiers
                    if ( -f "$Path/$FileFound") {
                            push ( @FilesList, "$Path/$FileFound" );
                    }
                    ## Traitement des repertoires
                    elsif ( -d "$Path/$FileFound") {
                            ## Boucle pour lancer la recherche en mode recursif
                            push (@FilesList, GetFilesList("$Path/$FileFound") );
                    }
            }
            return @FilesList;
    }
    my @Files = GetFilesList my $repfacture;
    foreach my $File  (@Files) { 
    	next unless $File =~ /\.txt$/i;
    	print "$File \n";
    }
     
    @Files = GetFilesList my $repbulletin;
    foreach my $File  (@Files) { 
    	next unless $File =~ /\.txt$/i;
    	print "$File \n";
    }
    J'obtiens ce message d'erreur :
    Pièce jointe 202564

    Merci d'avance pour votre aide
    Cordialement

  2. #2
    Rédactrice

    Avatar de stoyak
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    408
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 408
    Points : 1 491
    Points
    1 491
    Par défaut
    Bonjour,

    Je te conseille d'utiliser le module Config::Std.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    use strict;
    use Carp;
    use warnings;
    use Config::Std;
     
    read_config 'fichier.ini' => my %config;
    L'ensemble de ton fichier est stocké dans le hash. A toi ensuite de bien structurer tes données.
    Cela demande du courage d'en tirer du plaisir
    Quand on n'a qu'un marteau, tous les problèmes ressemblent à un clou

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 183
    Points : 32
    Points
    32
    Par défaut
    J'ai utilisé ce que tu m'as donné mais lorsque je compile mon programme il me renvoi ce message d'erreur :

    perl -cw "script.pl" (in directory: C:\Perl\site\lib)
    Can't locate Config/Std.pm in @INC (@INC contains: c:/Perl/lib c:/Perl/site/lib .) at script.pl line 4.
    BEGIN failed--compilation aborted at script.pl line 4.
    Compilation failed.

    Alors que mon programme script.pl je l'ai enregistré dans c:/Perl/lib est ce que le fait que mon fichier.ini ne se trouvant pas dans le répertoire c:/Perl/lib peut faire en sorte que cela ne fonctionne pas ?
    Faut-il que je mette le fichier.ini dans c:/perl/lib ?


    Cordialement

  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 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Le module Config::Std n'est pas présent sur ta machine. Il faut l'installer, avec la commande cpan (ou autrement, suivant le Perl que tu utilises).

  5. #5
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Et surtout, tu n'as pas besoin (et ne devrait pas) installer ton script dans c:\perl\lib
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 183
    Points : 32
    Points
    32
    Par défaut
    La version de perl que j'utilise est : 5.6.1.

    Pourquoi il ne faut pas que mon script.pl se trouve dans c:/Perl/lib ?

  7. #7
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    5.6.1, t'es sérieux là ?

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 183
    Points : 32
    Points
    32
    Par défaut
    Et oui je suis sérieux

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 183
    Points : 32
    Points
    32
    Par défaut
    Y aurait-il une autre méthode plus adapter ?

  10. #10
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Tu es sous Windows ? Si oui, je te conseille de désinstaller ActivePErl et d'installer la dernière version de Strawberry Perl. Puis tu lances la commande

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 183
    Points : 32
    Points
    32
    Par défaut
    oui je suis sous windows.
    En desinstallant ActivePerl les programmes que j'ai fait ne seront plus fonctionnel ?

  12. #12
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Fais nous confiance, il faudra réinstaller les modules Perl si tes programmes en utilisent

  13. #13
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Attention, si solarian a installé ses scripts dans c:\perl\lib comme il l'a fait pour le présent fil, IL NE FAUT PAS DESINSTALLER ActivePerl !!!
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 183
    Points : 32
    Points
    32
    Par défaut
    Comment dois je utiliser la commande

    cpan -i Config::Std ?
    Dans un interpréteur ou directement dans mon code, sachant que lorsque je souhaite l'exécuter dans l'interpréteur mon prompt est le suivant :
    c:\Strawberry\cpan
    Et l'interpréteur me dis que cpan n'est pas un applet de commande chose que je comprend.

  15. #15
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Après désintallation d'ActivePerl, suppression du répertoire C:/Perl suppression de Perl dans la variable d'environnement, installation de Strawberry Perl redemarrage du PC, tu lance la commande cpan -i dans une console DOS.

  16. #16
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Tu dois lancer la commande cpan depuis l'éditeur de commande du programme StrawberryPerl dans le menu Windows : Strawberry Perl -> Perl (command line).
    Son icône est 4 points rouges disposés en carré.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  17. #17
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    AVANT de désinstaller et de supprimer c:\Perl, pense à récupérer tes propres scripts que tu as pu ranger sous c:\Perl\lib
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  18. #18
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 183
    Points : 32
    Points
    32
    Par défaut
    lorsque j'utilise la commande Get-Item env:\Perl il n'y a pas de variable d'environnement Perl
    Car il n'existe pas

  19. #19
    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 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Et la commande
    à l'invite d'une console DOS, ça donne quoi?

  20. #20
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 183
    Points : 32
    Points
    32
    Par défaut
    perl -v me donne la version de perl qui est v5.6.1

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. comment utiliser des scripts Perl dans des pages Html?
    Par mahmoudelect dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 16/03/2010, 14h11
  2. Comment utiliser svn avec perl?
    Par NadyPerl dans le forum Langage
    Réponses: 6
    Dernier message: 01/10/2007, 10h05
  3. comment utiliser les API avec Perl?
    Par megapacman dans le forum Langage
    Réponses: 5
    Dernier message: 23/08/2006, 15h18
  4. Réponses: 13
    Dernier message: 25/04/2006, 09h43

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