[PERL] je suis débutant

Fermé
drogba7213 Messages postés 1521 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 - 17 avril 2009 à 20:01
drogba7213 Messages postés 1521 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 - 21 avril 2009 à 16:06
Bonjour,

je suis débutant en perl et j'avoue pas tout comprendre

Voila je code sous xp et dans un premier temps j'ai installé cygwin pour pouvoir mettre en place les modules cpan dont j'ai besoin mais après il me fallait tk donc j'ai installé active perl tk fonctionne j'ai donc commencé a codé enfin...

Et derrière mon code ne s'éxécute pas pouvez vous me dire pourquoi svp?

 
 #!/usr/local/bin/perl
use Tk;	 #Utilisation de Tk
use Tk::ProgressBar;

#Définition de notre fonction de fermeture de l'application
sub Quitter 
{
    exit(0);
}

#Création de la fenêtre principale
$fen = MainWindow->new();

#Définition de la taille min de la fenêtre
$fen->minsize('500','300');

#Définition du title de la fenêtre
$fen->title("Islo People");

#Création de la barre de menu
$barre_menu = $fen->Frame(-relief => 'groove' , -borderwidth => 2);

#Création de la barre du menu général
$menu_gen = $barre_menu->Menubutton(
                                     -text => 'Menu' ,
                                     -font => '{Garamond} 10',
                                     -tearoff => 0 ,
                                     -menuitems => [
                                                     [ 'command' => 'Quitter' ,
                                                       -font => '{Garamond} 10',
                                                       -command => \&Quitter
                                                     ]
                                                   ]
                                   );

#Affichage du menu général à gauche
$menu_gen->pack(-side => 'left');

#Affichage de la barre de menu en haut de la fenêtre
$barre_menu->pack(-side => 'top', -anchor => 'n', -fill => 'x');

#Ajout du label Hello World
$fen->Label(
             -text => "Islo people" ,
             -font => '{Garamond} 10',
           )->pack(
                    -anchor => 'ne',
                    -fill => 'x'
                  );


    $progress = $parent->ProgressBar(
        -width => 200,
        -length => 20,
        -anchor => 's',
        -from => 0,
        -to => 100,
        -blocks => 10,
        -colors => [0, 'green', 50, 'yellow' , 80, 'red'],
        -variable => \$percent_done
    );

    $progress->value($position);

#Création de notre barre de statut à l'aide d'un Label
$barre_statut = $fen->Label(-relief => 'groove', -text => "Islo people", -font => '{Garamond} 10');

#On l'ajoute en bas de la fenêtre afin de lui donner l'effet barre de statut
$barre_statut->pack( -side => 'bottom', -fill => 'both');

MainLoop;



aidez moi svp

merci d'avance

7 réponses

Salut,
Tu as un souci à l'execution car ta fenetre principale s'appelle "$fen" mais toi en appelant le progressBar tu veux le faire apparaitre sur une fenetre qui s'appelle "$parent" or celle là n'existe pas. Donc la remplacer par $fen.
Après je sais pas si tout est résolu.
Voilà
0
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 305
20 avril 2009 à 15:21
Je confirme ce que dis koa0. Tu dois remplacer $parent par $fen dans ta progressBar et cela fonctionne sans problème.

Voilou.
0
Juste une autre chose.
Faudrait aussi faire apparaitre le progressbar via pack car sinon il est construit mais n'apparait pas.
$progress = $fen->ProgressBar(
-width => 200,
-length => 20,
-anchor => 's',
-from => 0,
-to => 100,
-blocks => 10,
-colors => [0, 'green', 50, 'yellow' , 80, 'red'],
-variable => \$percent_done
)->pack();
0
drogba7213 Messages postés 1521 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 21
20 avril 2009 à 16:58
oui effectivement j'avais trouvé désolé javais pas vu pardon par contre je rencontre quelque autre problème je vous résume tout ca
voila je souhaite faire une application en perl pour mon bts hélas c'est la première fois que j'utilise ce langage et je n'ai donc pas tout les réflexes concernant les différents modules a utilisé.
Donc je vous dit ce que je souhaite faire.

Donc dans un premier temps je souhaite que quand l'utilisateur clic droit sur une ou plusieurs foto il puisse envoyé vers un ftp sécurisé. Et l'application fait tout tout seul.
Donc la connexion au ftp c'est bon.
ce qu'il me manque dans l'immédiat ca serait comment je peut récupérer les fichier que l'utilisateur a clické droit dessus?
Ensuite récupérer leur chemin.
Les envoyé sur le ftp.
Et faire un controle si tout a bien été envoyé.
Pour le moment comme je vous disait la connexion se fait bon a la rigueur je pense pouvoir trouvé comment envoyé un ou plusieurs fichiers sur le ftp. j'arrive pas a utiliser Tk:NG je ne sais pas pourquoi bref. J'utilise une barre de progression pour l'envoi des fichiers donc il faut que je les compte et ensuite faire une vérif. bref la je suis un peu a cours

Pourriez vous m'éclairer svp?

merci d'avance
0
Salut,
Je suis désolé mais je n'ai pas compris grand chose.
Pourrais tu agrémenter d'un exemple?
Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
drogba7213 Messages postés 1521 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 21
21 avril 2009 à 08:42
ok alors je met le script pour le moment c'est surtout du test mais bon donc il va y avoir de commenté le Tk::PNG de commenté car il me pose problème et le Net::FTPSSL qui ne fonctionne pas je ne sais pas pourquoi non plus voila je vous met le code merci de regarder c'est gentil

#!/usr/local/bin/perl
use Tk;	 #Utilisation de Tk
#use strict;
use warnings;
use Tk::ProgressBar;
#use Tk::Photo;
#use Tk::PNG;
#use Net::FTPSSL;


##module qui pourrait m'être utile
#Net::FTP::File

#if ("il y a des fichiers de sélectionné")
#	{
#	my $ftps = Net::FTPSSL->new("192.168.0.69",
#			Port=> 21,
#			Encryption => EXP_CRYPT,
#			Debug => 1)
#			or die "Impossible de se connecter à Islo people";
#	
#	$ftps->	login('photographe', 'passe')
#		or die "Pas de login : "
#	}
	
#Définition de la fonction de fermeture de l'application
sub Quitter 
{
    exit(0);
}

#Création de la fenêtre principale
$fen = MainWindow->new();

#Définition de la taille min de la fenêtre
$fen->minsize('500','300');

#Définition du title de la fenêtre
$fen->title("Islo People");

#Création de la barre de menu
$barre_menu = $fen->Frame(-relief => 'groove' , -borderwidth => 2);

#Création de la barre du menu général
$menu_gen = $barre_menu->Menubutton(
                                     -text => 'Menu' ,
                                     -font => '{Garamond} 10',
                                     -tearoff => 0 ,
                                     -menuitems => [
                                                     [ 'command' => 'Quitter' ,
                                                       -font => '{Garamond} 10',
                                                       -command => \&Quitter
                                                     ]
                                                   ]
                                   );

#  Création d'un cadre
    my $frame1 = $fen->Frame()->pack(-side => "bottom",-padx => 10, -pady => 0);

#Affichage du menu général à gauche
$menu_gen->pack(-side => 'left');

#Affichage de la barre de menu en haut de la fenêtre
$barre_menu->pack(-side => 'top', -anchor => 'n', -fill => 'x');

#my $ObjImage = $fenetre->Photo( -format => "png", -file => "image.png" );
#my $bouton2 = $fenetre -> Button (
#    -image => $ObjImage, 
#		-command => sub { exit; },
#)->pack();

 my $status_var =0;
 
    $frame1->ProgressBar(
                 -borderwidth => 10,
                 -relief => 'sunken',
                 -width => 35,
                 -length => 500,
                 -padx => 0,
                 -pady => 0,
                 -variable => \$status_var,
                 -colors => [0, 'green'],
                 -resolution => 0,
                 -blocks => 50,
                 -anchor => 'w',
                 -from =>'0',
                 -to => '100'
                )->pack(
                        -padx => 10,
                        -pady => 10,
                        -fill => 'both'
                       );

    # La boucle dans laquelle la variable de ProgressBar change

    for (my $lostime = 0 ; $lostime < 101 ; $lostime += 5) {
        sleep 1 ;
        $status_var=$lostime ;
        print "comptage en cours: $lostime \n" ;

        # l'instruction suivante permet la prise en compte
        # des changements de valeurs de $status_var dans Perl/Tk,
        # ici  le widget Progressbar

        $fen->update;
    }

    sleep 5;
    print "Fin de l'exemple update \n";
    $fen->destroy;

#Création de notre barre de statut à l'aide d'un Label
$barre_statut = $fen->Label(-relief => 'groove', -text => "Islo people", -font => '{Garamond} 10');

#On l'ajoute en bas de la fenêtre afin de lui donner l'effet barre de statut
$barre_statut->pack( -side => 'bottom', -fill => 'both');

MainLoop;
0
Bon ok,
Je ne vais pas avoir le temps de tout regarder maintenant. Mais déjà en y regardant rapidement tu as une erreur au niveau du destroy de la fenetre principale. Il est mal placé c'est pour cela qu'il y a une erreur en fin d'execution. Il vaudrait mieux mettre ce destroy dans une condition.
0
Il faut aussi que tu regardes si tes modules sont tous installé car si tu as une erreur au niveau des modules c'est que soit le module en question n'est pas installé, soit il est mal orthographié.
0
drogba7213 Messages postés 1521 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 21
21 avril 2009 à 10:40
ok alors le truc c'est que je ne sais pas ou voir s'il sont installé. Et je n'arrive pas a les installer aide moi stp
0
drogba7213 Messages postés 1521 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 21
21 avril 2009 à 16:06
up
0