Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Liste déroulante

4 réponses
Avatar
MyNeWs
bonjour,
je voudrais récupérer des donnees d'un fichier et les mettre dans une liste
déroulante.
Mon probleme, c'est que je n'y arrive pas ;-)
Voici le bout de mon script:

# Les noms dans le fichier $noms sont sous cette forme
nom1
nom2
nom3
nom4
nom5
nom6
nom7

# Je recupere normalement les noms dans une variable $result_noms
open (FIC,">>$noms") || die "Je ne peux pas ouvrir $noms";
while (<FIC>) {$result_noms.= $_;}
close (FIC) || die "Je ne peux pas ouvrir $noms";

#C'est la en fait que j'ai mon probleme, je ne sais pas comment récuperer
les noms et les mettre dans la liste ...

@mes_noms= qw / mettre les resultats de la variable $result_noms dans cette
liste deroulante /;

my $liste_noms = $fenetre2->Scrolled(
Listbox,
-scrollbars => 'oe',
-selectforeground =>
'red',
-selectmode =>
'single',
-height => '4',
- width => '30',
-setgrid => '1',
-font => "{Arial} 8
{bold}"
)->pack(-side
=>'top');
$liste_noms ->bind("<Button>", \&journalier);
$liste_noms ->insert('end',@mes_noms);
$liste_noms ->configure(-selectforeground => 'red', -selectbackground =>
'green');


Si vous avez une piste (voir la solution) je vous remercie.

Philippe

4 réponses

Avatar
MyNeWs
Petit rajout:
j'ai modifié un peu mon script, et voici le résultat:
open (FIC,"$noms") || die "Je ne peux pas ouvrir $noms";
while (<FIC>) { @mes_noms = $_;chomp @mes_noms;}
close (FIC) || die "Je ne peux pas ouvrir $noms";

A ce stade là, je me retrouve avec dans mon tableau, le dernier nom de mon
fichier (nom7)
et uniquement celui ci.
Je progresse ... ;-))




"MyNeWs" a écrit dans le message de news:
4491a542$0$24912$
bonjour,
je voudrais récupérer des donnees d'un fichier et les mettre dans une
liste déroulante.
Mon probleme, c'est que je n'y arrive pas ;-)
Voici le bout de mon script:

# Les noms dans le fichier $noms sont sous cette forme
nom1
nom2
nom3
nom4
nom5
nom6
nom7

# Je recupere normalement les noms dans une variable $result_noms
open (FIC,">>$noms") || die "Je ne peux pas ouvrir $noms";
while (<FIC>) {$result_noms.= $_;}
close (FIC) || die "Je ne peux pas ouvrir $noms";

#C'est la en fait que j'ai mon probleme, je ne sais pas comment récuperer
les noms et les mettre dans la liste ...

@mes_noms= qw / mettre les resultats de la variable $result_noms dans
cette liste deroulante /;

my $liste_noms = $fenetre2->Scrolled(
Listbox,
-scrollbars =>
'oe',
-selectforeground
=> 'red',
-selectmode =>
'single',
-height => '4',
- width => '30',
-setgrid => '1',
-font => "{Arial} 8
{bold}"
)->pack(-side
=>'top');
$liste_noms ->bind("<Button>", &journalier);
$liste_noms ->insert('end',@mes_noms);
$liste_noms ->configure(-selectforeground => 'red', -selectbackground =>
'green');


Si vous avez une piste (voir la solution) je vous remercie.

Philippe



Avatar
MyNeWs
Bon ben voila, j'ai trouvé une solution (du moins elle me plait bien)
je vous la donne :

open (FIC,"$noms") || die "Je ne peux pas ouvrir $noms";
while (<FIC>)
{
$file = $_;
(@mes_noms)=split(/, /,$file);
chomp @mes_noms;
}
close (FIC);


"MyNeWs" a écrit dans le message de news:
4491a542$0$24912$
bonjour,
je voudrais récupérer des donnees d'un fichier et les mettre dans une
liste déroulante.
Mon probleme, c'est que je n'y arrive pas ;-)
Voici le bout de mon script:

# Les noms dans le fichier $noms sont sous cette forme
nom1
nom2
nom3
nom4
nom5
nom6
nom7

# Je recupere normalement les noms dans une variable $result_noms
open (FIC,">>$noms") || die "Je ne peux pas ouvrir $noms";
while (<FIC>) {$result_noms.= $_;}
close (FIC) || die "Je ne peux pas ouvrir $noms";

#C'est la en fait que j'ai mon probleme, je ne sais pas comment récuperer
les noms et les mettre dans la liste ...

@mes_noms= qw / mettre les resultats de la variable $result_noms dans
cette liste deroulante /;

my $liste_noms = $fenetre2->Scrolled(
Listbox,
-scrollbars =>
'oe',
-selectforeground
=> 'red',
-selectmode =>
'single',
-height => '4',
- width => '30',
-setgrid => '1',
-font => "{Arial} 8
{bold}"
)->pack(-side
=>'top');
$liste_noms ->bind("<Button>", &journalier);
$liste_noms ->insert('end',@mes_noms);
$liste_noms ->configure(-selectforeground => 'red', -selectbackground =>
'green');


Si vous avez une piste (voir la solution) je vous remercie.

Philippe



Avatar
Rue des Prairies
Bon ben voila, j'ai trouvé une solution (du moins elle me plait bien)
je vous la donne :

open (FIC,"$noms") || die "Je ne peux pas ouvrir $noms";
while (<FIC>)
{
$file = $_;
(@mes_noms)=split(/, /,$file);
chomp @mes_noms;
}
close (FIC);



Bonjour,

Je ne suis pas sûr que ta solution fonctionne,
essaie plutôt ceci :

my ($fh);
open($fh,'<',$noms) or die $!;
@mes_noms = <$fh>;
close($fh);


Olivier.

Avatar
Sébastien Cottalorda
bonjour,
je voudrais récupérer des donnees d'un fichier et les mettre dans une liste
déroulante.
Mon probleme, c'est que je n'y arrive pas ;-)
Voici le bout de mon script:

# Les noms dans le fichier $noms sont sous cette forme
nom1
nom2
nom3
nom4
nom5
nom6
nom7

# Je recupere normalement les noms dans une variable $result_noms
open (FIC,">>$noms") || die "Je ne peux pas ouvrir $noms";
while (<FIC>) {$result_noms.= $_;}
close (FIC) || die "Je ne peux pas ouvrir $noms";

#C'est la en fait que j'ai mon probleme, je ne sais pas comment récuperer
les noms et les mettre dans la liste ...


Salut,

Voici comment je vois ton problème:

open (FIC, "<", "$noms") || die "Je ne peux pas ouvrir $noms";
# utilise l'appel à open avec 3 paramètres
# De plus, dans le cas d'une lecture, je ne vois pas pourquoi tu
# utilises '>>', '<' est plus approprié
@mes_noms=();
while (<FIC>){
chomp(); # car tu récupères aussi le retour à la ligne
push @mes_noms, $_; # ajoute le nom au tableu @mes_noms
}
close(FIC);
my $liste_noms
= $fenetre2->Scrolled( Listbox,
-scrollbars => 'oe',
-selectforeground => 'red',

-selectmode => 'single',
-height => '4',
-width => '30',
-setgrid => '1',
-font => "{Arial} 8 {bold}"
)->pack(-side =>'top');
$liste_noms ->bind("<Button>", &journalier);
$liste_noms ->insert('end',@mes_noms);
$liste_noms ->configure( -selectforeground => 'red',
-selectbackground => 'green',
);



J'espère que cela t'aidera.

Sébastien