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 :

Appel de fonctions


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Mars 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2012
    Messages : 29
    Par défaut Appel de fonctions
    Bonjours tous le monde

    le problème d'aujourd'hui c'set que j'ai créer une fonction dans un script(.pl) et je veux la utiliser dans un autre script (.pl)

    Vous avez une idée commet le faire.???

  2. #2
    Membre chevronné Avatar de Beniou
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 357
    Par défaut
    Bonjour,

    Pour cela tu devrais créer un module (.pm) avec les fonctions dont tu veux te servir dans tes autres scripts.
    Ensuite, en important ton module dans ton script .pl, tu pourras utiliser tes fonctions.

    Un exemple se trouve ici

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Mars 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2012
    Messages : 29
    Par défaut
    Merci Beniou

    votre lien est très utile, mais il me faut quelle amélioration

    Car j'ai créé une fonction qui parcours les répertoires et cherche les fichiers Excel puis créer pour chaque fichier trouvez un autre d'extension .ptu a cote de lui de mm répertoire trouvé

    Et j'ai créé une autre fonction qui fait le traitement sur ces fichiers Excel (copier des infos puis les coller sur le fichier .ptu)

    Le problème comment utiliser la sortie de la premier fonction et l'exploiter comme entrée pour d'autre fonction ???

  4. #4
    Membre chevronné Avatar de Beniou
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 357
    Par défaut
    Bonjour,

    Est-ce que tu utilises des paramètres d'entrée/sortie pour tes fonctions ?

    Si oui, je ne vois pas trop le problème...

    Exemple :
    1) ta fonction creation_ptu prend en entrée un répertoire et te rend une liste de fichiers modifiés
    2) ta fonction traitement_excel prend en entrée une liste de fichiers.

    De cette façon tu peux passer en paramètre la liste de fichiers issue de ta fonction creation_ptu à ta seconde fonction traitement_excel.

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Mars 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2012
    Messages : 29
    Par défaut
    Bonjour voila mon code
    Mon objectif c’est d’avoir une fonction(fonction de parcours ) qui me retourne des chemins de répertoire
    La deuxième (fonction d'ouverture)ouvert les Excel qui se trouve dans ces répertoire
    La troisième (fonction de traitemet pour chaque fichier)traite la première feuille d’Excel trouvé
    La quatrième traite la deuxième feuille d’Excel trouve

    .
    .

    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
    #!/usr/bin/perl;
    use strict;
    use File::Find;
    use OLE;
    use Win32::OLE::Const 'Microsoft Excel';
    my @link_in_win;
    my @link;
    my @Name_file;
    my $Name_file;
    my $Book;
    my $Excel; 
    #---------------------------------------------------
    print 'debut de repertoire ';
    my $directory = <STDIN>;
    chomp $directory;
    #-----------------fonction de parcours ---------------------
    find( { wanted => \&process, }, $directory );
            sub process {
                         my $link_in_unix = $File::Find::name;
                         $link_in_unix ;
                         push @link_in_win, $link_in_unix;
                            }
                        }
    #------------------fonction d'ouverture ----------------------
        my $link_counter = 0; 
        foreach my $file (@link_in_win) 
        {
         $link[$link_counter]= $file;
         chomp($link[$link_counter]);
         print"$link[$link_counter]\n"; 
         my $Excel = CreateObject OLE 'Excel.Application' or die $!;
    	 $Excel->{'Visible'} = 0;
         $Book = $Excel->Workbooks->Open($link[$link_counter])|| die"link non trouvé";  
         $Book->Close; 
     
         open(FILE, ">$link[$link_counter].ptu"); 
     
         print FILE "this is juste a test \n";
        }
        $link_counter++;
    #-------------------------fonction de traitemet pour chaque fichier-------------
     
    #-------------------------------------------------------------------------------

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 63
    Par défaut
    Hum, j'ai pas tout bien saisis ce que tu souhaitais faire mais je peux te dire comment appeller des fonctions d'un script à l'autre.

    Imaginons 2 fichiers, on a une fonction dans "script1" que l'on souhaite appeler dans script2 :

    script1.pm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #!/usr/bin/perl
     
    package script1;  #Crée un package (équivalent à une classe en JAVA)
     
    use strict;
    use warnings;
     
    sub fonction1{
          #---Ton code---
    }
     
    1; #Nécessaire à la fermeture du package
    script2.pl
    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
    #!/usr/bin/perl
     
    use strict;
    use warnings;
     
    #----Voilà la définition de l'autre fichier (grosso modo c'est l'équivalent du include en C----
    use script1;
     
    sub fonction2{
          my $parametreApasser;
          my $trucArecuperer;
          #---Ton code---
          $trucArecuperer = script1::fonction1($parametreApasser);
          #---Ton code---
    }
    Il est important de définir le fichier *.pm avec le même nom que le package. Le package recensera tout ce qui est en dessous de lui. Sachant que tu peux utiliser un package dans un autre.

Discussions similaires

  1. Appeler une fonction avec "action" ds un
    Par drinkmilk dans le forum ASP
    Réponses: 4
    Dernier message: 20/04/2004, 14h54
  2. Réponses: 4
    Dernier message: 19/04/2004, 13h41
  3. [JSP] Appeler une fonction
    Par Patrick95 dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 23/12/2003, 13h44
  4. Appel à des fonctions incluses dans des DLL
    Par Greybird dans le forum Langage
    Réponses: 3
    Dernier message: 26/05/2003, 13h33
  5. Appeler une fonction avec/sans parenthèses
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 29/12/2002, 18h48

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