Salut tout le monde,
alors j'ai bien lu le FAQ, les cours et le forum mais je n'ai pas vu quelque chose qui ressemble a mon problème.
Je me suis créé une interface qui est sensé affiché la progression de la lecture de mes fichiers (et création en même temps d'objet). J'ai bien redirigé STDOUT vers mon widget Text pour afficher les print mais le souci c'est que les print ne s'affiche au fur et mesure que si ils sont dans le code de mon interface... ores les print que je voudrais affiché viennent d'un autre module que je n'appelle qu'une fois donc l'update du widget ne se fait qu'une fois...
Y a t il un moyen de force l'update plusieurs avant la fin de la lecture de mes fichiers???
voici un bout du code mon interface:
et maintenant un bout du code de Lecture::action :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 my $btn_lecture = $mw -> Button( -text => 'Lecture', -activebackground => 'white', -font => '{Times New Roman} 15 {bold}', -state => $activer_lecture, -command => sub{Lecture::action} ); # Lancement d'une fonctionne qui surveille le STDOUT toutes les 0.1 secondes my $TailleOctetLu = 0; $message->repeat( 50,[\&LectureFichierParOctets, $FichierSTDOUT,$message, \$TailleOctetLu] ); $message->update; $message -> see ('end');
merci d'avance pour l'aide (aussi minime soit elle) que vous m'apporterez.
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 # ****************************************************************************************** # Lecture du fichier PAYS # ****************************************************************************************** $nb = 5; $nbb = 0; $j = 0; @liste_attributs = (); open (FICHIER,$chemin_fic.$tab_nom_fic[$nb]) or die("Impossible d'ouvrir: $tab_nom_fic[$nb]!!!\n$!"); while (defined (my $ligne = <FICHIER>)) { if ($j == 0) { $j++; next; }else{ $ligne = Utilitaires::efface_dquote($ligne); @liste_attributs = split (/\,/,$ligne); my $objet= $tab_nom_mod[$nb] -> new ({ cid => $liste_attributs[1], nom => $liste_attributs[2], a => $liste_attributs[3], b => $liste_attributs[4], f_1 => $liste_attributs[5], e2 => $liste_attributs[6], }); my $nom = Pays::get_nom($objet); if ($nom ne '\N') { $tabpays[$j-1] = $objet; $j++; $nbb++; # print FILETEST "$nom mis en memoire\n"; print "$j lignes\n"; print "$nbb objet\n"; print "$nom mis en memoire\n"; } } } close (FICHIER); $nb_objet = Pays::get_compteur; print "\n$nb_objet $tab_nom_mod[$nb] crees\n"; print "$nbb $tab_nom_mod[$nb] mis en memoire\n\n"; $compteur_tot = $compteur_tot + $nbb;
Partager