Bonjour à toutes et a tous.
En quelques lignes, je vous expose mon probleme.
J'ai crée un menu déroulant, qui va chercher a partir d'un tableau un
liste de mots. Ma question est : Quand je clique sur un mot de mon menu
déroulant, je voudrais qu'il se mettent dans la fenetre texte situé en
dessous.
Voici un bout du code.
Merci à ceux et celles qui pourront m'aider.
Frank
PS : Je fais ça depuis peu, donc je suis désolé s'il y a des
erreurs de syntaxe ou autre... Merci de votre compréhension.
#Ouverture du fichier de mots, recherche d'un mot et récupération dans un
fichier resultat.txt du ou des mots qui m'interessent...
$elt_rec="marche - ";
my $mots_txt = "C\:\/Perl\/dev\/marche.txt";
my $mots = "C\:\/Perl\/dev\/resultat.txt";
open(FICH,"$mots_txt") or die ("impossible d'ouvrir $mots_txt !\n");
open(FICHE,"$mots") or die ("impossible d'ouvrir $mots !\n");
while (<FICH>)
{
if (/$elt_rec/i)
{
$enreg=$_;
($buf1,$buf2,$buf3,$buf4,$mot_recherche) = split(\s+
$enreg);
open (FICHE,">>$mots");
print FICHE ("$mot_recherche \n");
close (FICHE) or die ("impossible de fermer $mots !\n");;
}
}
close(FICH) or die ("impossible de fermer $mots_txt !\n");
close(FICHE) or die ("impossible de fermer $mots !\n");
#Récuperation des mots du fichier resultat et les rentrer dans un menu
defilent.
################################################################################
open (FICHE,"$mots") || die "je ne peux ouvrir $mots";
@liste_mots = <FICHE>;
close (FICHE) || die "je ne peux fermer $mots";
@listes_mots = sort @liste_mots; # La, je les trie alphabetiquement
$liste = new MainWindow (); # Création de ma fenetre
$liste -> title ("Liste des mots");
$listes_mots = $liste -> Scrolled ( "Listbox" , # Création de ma liste
déroulante ...
-font => "{Arial} 10 {bold}",
-scrollbars => 'oe',
-selectmode => 'single',
-height => 6,
-setgrid => 1
);
#=> C'est la dedans que je voudrais que vienne s'afficher le mot que j'ai
selectionné...
#Selection d'un mot.
###################
$texte = $liste -> Text ( -width => 15 , -height =>
1 ) ; # la, je crée une
fenetre ou devrait venir s'inscrire le mot sur lequel j'ai cliqué...
$texte -> pack ( ) ;
#=> Ca, c'est mon bouton de validation..
#Bouton de validation
#####################
$val_mot = $liste -> Button (-text => 'Valider', -font => "{Arial} 10
{italic}", -foreground => red, -command => \&validation);
$val_mot->pack(-side => 'bottom');
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jogo
Sur fr.comp.lang.perl, Frank clavardait ainsi :
#Ouverture du fichier de mots, recherche d'un mot et récupération dans un fichier resultat.txt du ou des mots qui m'interessent...
Es-tus sûr de réutiliser les infos de resultats.txt ? Sinon il vaut mieux utiliser un tableau qu'un fichier.
$elt_rec="marche - "; my $mots_txt = "C:/Perl/dev/marche.txt"; my $mots = "C:/Perl/dev/resultat.txt";
Les : n'ont pas besoin d'être échappés, il me semble.
open(FICH,"$mots_txt") or die ("impossible d'ouvrir $mots_txt !n"); open(FICHE,"$mots") or die ("impossible d'ouvrir $mots !n"); while (<FICH>) { if (/$elt_rec/i) { $enreg=$_; ($buf1,$buf2,$buf3,$buf4,$mot_recherche) = split(s+ $enreg);
Si tu ne réutilises pas les $buf<i>, utilise undef. Pour split, n'oublie pas que le 1° argument doit être une expression régulière. Donc : (undef,undef,undef,undef,$mot_recherche) = split(/s+/, $enreg) ;
open (FICHE,">>$mots");
Ce fichier est déjà ouvert, ce qui porte à confusion.
print FICHE ("$mot_recherche n"); close (FICHE) or die ("impossible de fermer $mots !n");; } } close(FICH) or die ("impossible de fermer $mots_txt !n"); close(FICHE) or die ("impossible de fermer $mots !n");
Ce fichier est déjà fermé.
#Récuperation des mots du fichier resultat et les rentrer dans un menu defilent. open (FICHE,"$mots") || die "je ne peux ouvrir $mots";
La meilleure syntaxe pour open, c'est un truc du genre : open($fiche,"<",$mots)
@liste_mots = <FICHE>; close (FICHE) || die "je ne peux fermer $mots"; @listes_mots = sort @liste_mots; $liste = new MainWindow ();
Quel module utilises-tu ? Je n'ai pas cherché. Ca aurait du être à toi de nous le dire en posant ta question. Je ne peux donc pas t'aider plus que ça...
Bon courage !
Sur fr.comp.lang.perl, Frank clavardait ainsi :
#Ouverture du fichier de mots, recherche d'un mot et récupération dans un
fichier resultat.txt du ou des mots qui m'interessent...
Es-tus sûr de réutiliser les infos de resultats.txt ? Sinon il vaut
mieux utiliser un tableau qu'un fichier.
$elt_rec="marche - ";
my $mots_txt = "C:/Perl/dev/marche.txt";
my $mots = "C:/Perl/dev/resultat.txt";
Les : n'ont pas besoin d'être échappés, il me semble.
open(FICH,"$mots_txt") or die ("impossible d'ouvrir $mots_txt !n");
open(FICHE,"$mots") or die ("impossible d'ouvrir $mots !n");
while (<FICH>)
{
if (/$elt_rec/i)
{
$enreg=$_;
($buf1,$buf2,$buf3,$buf4,$mot_recherche) = split(s+ $enreg);
Si tu ne réutilises pas les $buf<i>, utilise undef. Pour split, n'oublie
pas que le 1° argument doit être une expression régulière. Donc :
(undef,undef,undef,undef,$mot_recherche) = split(/s+/, $enreg) ;
open (FICHE,">>$mots");
Ce fichier est déjà ouvert, ce qui porte à confusion.
print FICHE ("$mot_recherche n");
close (FICHE) or die ("impossible de fermer $mots !n");;
}
}
close(FICH) or die ("impossible de fermer $mots_txt !n");
close(FICHE) or die ("impossible de fermer $mots !n");
Ce fichier est déjà fermé.
#Récuperation des mots du fichier resultat et les rentrer dans un menu
defilent.
open (FICHE,"$mots") || die "je ne peux ouvrir $mots";
La meilleure syntaxe pour open, c'est un truc du genre :
open($fiche,"<",$mots)
@liste_mots = <FICHE>;
close (FICHE) || die "je ne peux fermer $mots";
@listes_mots = sort @liste_mots;
$liste = new MainWindow ();
Quel module utilises-tu ? Je n'ai pas cherché. Ca aurait du être à toi de nous
le dire en posant ta question. Je ne peux donc pas t'aider plus que ça...
#Ouverture du fichier de mots, recherche d'un mot et récupération dans un fichier resultat.txt du ou des mots qui m'interessent...
Es-tus sûr de réutiliser les infos de resultats.txt ? Sinon il vaut mieux utiliser un tableau qu'un fichier.
$elt_rec="marche - "; my $mots_txt = "C:/Perl/dev/marche.txt"; my $mots = "C:/Perl/dev/resultat.txt";
Les : n'ont pas besoin d'être échappés, il me semble.
open(FICH,"$mots_txt") or die ("impossible d'ouvrir $mots_txt !n"); open(FICHE,"$mots") or die ("impossible d'ouvrir $mots !n"); while (<FICH>) { if (/$elt_rec/i) { $enreg=$_; ($buf1,$buf2,$buf3,$buf4,$mot_recherche) = split(s+ $enreg);
Si tu ne réutilises pas les $buf<i>, utilise undef. Pour split, n'oublie pas que le 1° argument doit être une expression régulière. Donc : (undef,undef,undef,undef,$mot_recherche) = split(/s+/, $enreg) ;
open (FICHE,">>$mots");
Ce fichier est déjà ouvert, ce qui porte à confusion.
print FICHE ("$mot_recherche n"); close (FICHE) or die ("impossible de fermer $mots !n");; } } close(FICH) or die ("impossible de fermer $mots_txt !n"); close(FICHE) or die ("impossible de fermer $mots !n");
Ce fichier est déjà fermé.
#Récuperation des mots du fichier resultat et les rentrer dans un menu defilent. open (FICHE,"$mots") || die "je ne peux ouvrir $mots";
La meilleure syntaxe pour open, c'est un truc du genre : open($fiche,"<",$mots)
@liste_mots = <FICHE>; close (FICHE) || die "je ne peux fermer $mots"; @listes_mots = sort @liste_mots; $liste = new MainWindow ();
Quel module utilises-tu ? Je n'ai pas cherché. Ca aurait du être à toi de nous le dire en posant ta question. Je ne peux donc pas t'aider plus que ça...
Bon courage !
Frank
Jogo wrote:
Sur fr.comp.lang.perl, Frank clavardait ainsi :
#Ouverture du fichier de mots, recherche d'un mot et récupération dans un fichier resultat.txt du ou des mots qui m'interessent...
Es-tus sûr de réutiliser les infos de resultats.txt ? Sinon il vaut mieux utiliser un tableau qu'un fichier.
$elt_rec="marche - "; my $mots_txt = "C:/Perl/dev/marche.txt"; my $mots = "C:/Perl/dev/resultat.txt";
Les : n'ont pas besoin d'être échappés, il me semble.
open(FICH,"$mots_txt") or die ("impossible d'ouvrir $mots_txt !n"); open(FICHE,"$mots") or die ("impossible d'ouvrir $mots !n"); while (<FICH>) { if (/$elt_rec/i) { $enreg=$_; ($buf1,$buf2,$buf3,$buf4,$mot_recherche) = split(s+ $enreg);
Si tu ne réutilises pas les $buf<i>, utilise undef. Pour split, n'oublie pas que le 1° argument doit être une expression régulière. Donc : (undef,undef,undef,undef,$mot_recherche) = split(/s+/, $enreg) ;
open (FICHE,">>$mots");
Ce fichier est déjà ouvert, ce qui porte à confusion.
print FICHE ("$mot_recherche n"); close (FICHE) or die ("impossible de fermer $mots !n");; } } close(FICH) or die ("impossible de fermer $mots_txt !n"); close(FICHE) or die ("impossible de fermer $mots !n");
Ce fichier est déjà fermé.
#Récuperation des mots du fichier resultat et les rentrer dans un menu defilent. open (FICHE,"$mots") || die "je ne peux ouvrir $mots";
La meilleure syntaxe pour open, c'est un truc du genre : open($fiche,"<",$mots)
@liste_mots = <FICHE>; close (FICHE) || die "je ne peux fermer $mots"; @listes_mots = sort @liste_mots; $liste = new MainWindow ();
Quel module utilises-tu ? Je n'ai pas cherché. Ca aurait du être à toi de nous le dire en posant ta question. Je ne peux donc pas t'aider plus que ça...
Bon courage !
Bonjour JoJo, Quel module ? Est ce que use Tk; c'est bon ? Si c'est bien ce que tu me demande...
Merci tout de meme pour tes remarques. Bien que mon résultat soit "relativement" bon, je vais faire les modifications.
Je continue de chercher dans les bouquins et sur le net, mais c'est dur :(
Jogo wrote:
Sur fr.comp.lang.perl, Frank clavardait ainsi :
#Ouverture du fichier de mots, recherche d'un mot et récupération dans un
fichier resultat.txt du ou des mots qui m'interessent...
Es-tus sûr de réutiliser les infos de resultats.txt ? Sinon il vaut
mieux utiliser un tableau qu'un fichier.
$elt_rec="marche - ";
my $mots_txt = "C:/Perl/dev/marche.txt";
my $mots = "C:/Perl/dev/resultat.txt";
Les : n'ont pas besoin d'être échappés, il me semble.
open(FICH,"$mots_txt") or die ("impossible d'ouvrir $mots_txt !n");
open(FICHE,"$mots") or die ("impossible d'ouvrir $mots !n");
while (<FICH>)
{
if (/$elt_rec/i)
{
$enreg=$_;
($buf1,$buf2,$buf3,$buf4,$mot_recherche) = split(s+ $enreg);
Si tu ne réutilises pas les $buf<i>, utilise undef. Pour split, n'oublie
pas que le 1° argument doit être une expression régulière. Donc :
(undef,undef,undef,undef,$mot_recherche) = split(/s+/, $enreg) ;
open (FICHE,">>$mots");
Ce fichier est déjà ouvert, ce qui porte à confusion.
print FICHE ("$mot_recherche n");
close (FICHE) or die ("impossible de fermer $mots !n");;
}
}
close(FICH) or die ("impossible de fermer $mots_txt !n");
close(FICHE) or die ("impossible de fermer $mots !n");
Ce fichier est déjà fermé.
#Récuperation des mots du fichier resultat et les rentrer dans un menu
defilent.
open (FICHE,"$mots") || die "je ne peux ouvrir $mots";
La meilleure syntaxe pour open, c'est un truc du genre :
open($fiche,"<",$mots)
@liste_mots = <FICHE>;
close (FICHE) || die "je ne peux fermer $mots";
@listes_mots = sort @liste_mots;
$liste = new MainWindow ();
Quel module utilises-tu ? Je n'ai pas cherché. Ca aurait du être à toi de
nous le dire en posant ta question. Je ne peux donc pas t'aider plus que
ça...
Bon courage !
Bonjour JoJo,
Quel module ? Est ce que use Tk; c'est bon ?
Si c'est bien ce que tu me demande...
Merci tout de meme pour tes remarques.
Bien que mon résultat soit "relativement" bon, je vais faire
les modifications.
Je continue de chercher dans les bouquins et sur le net, mais c'est dur :(
#Ouverture du fichier de mots, recherche d'un mot et récupération dans un fichier resultat.txt du ou des mots qui m'interessent...
Es-tus sûr de réutiliser les infos de resultats.txt ? Sinon il vaut mieux utiliser un tableau qu'un fichier.
$elt_rec="marche - "; my $mots_txt = "C:/Perl/dev/marche.txt"; my $mots = "C:/Perl/dev/resultat.txt";
Les : n'ont pas besoin d'être échappés, il me semble.
open(FICH,"$mots_txt") or die ("impossible d'ouvrir $mots_txt !n"); open(FICHE,"$mots") or die ("impossible d'ouvrir $mots !n"); while (<FICH>) { if (/$elt_rec/i) { $enreg=$_; ($buf1,$buf2,$buf3,$buf4,$mot_recherche) = split(s+ $enreg);
Si tu ne réutilises pas les $buf<i>, utilise undef. Pour split, n'oublie pas que le 1° argument doit être une expression régulière. Donc : (undef,undef,undef,undef,$mot_recherche) = split(/s+/, $enreg) ;
open (FICHE,">>$mots");
Ce fichier est déjà ouvert, ce qui porte à confusion.
print FICHE ("$mot_recherche n"); close (FICHE) or die ("impossible de fermer $mots !n");; } } close(FICH) or die ("impossible de fermer $mots_txt !n"); close(FICHE) or die ("impossible de fermer $mots !n");
Ce fichier est déjà fermé.
#Récuperation des mots du fichier resultat et les rentrer dans un menu defilent. open (FICHE,"$mots") || die "je ne peux ouvrir $mots";
La meilleure syntaxe pour open, c'est un truc du genre : open($fiche,"<",$mots)
@liste_mots = <FICHE>; close (FICHE) || die "je ne peux fermer $mots"; @listes_mots = sort @liste_mots; $liste = new MainWindow ();
Quel module utilises-tu ? Je n'ai pas cherché. Ca aurait du être à toi de nous le dire en posant ta question. Je ne peux donc pas t'aider plus que ça...
Bon courage !
Bonjour JoJo, Quel module ? Est ce que use Tk; c'est bon ? Si c'est bien ce que tu me demande...
Merci tout de meme pour tes remarques. Bien que mon résultat soit "relativement" bon, je vais faire les modifications.
Je continue de chercher dans les bouquins et sur le net, mais c'est dur :(
franck
bonsoir, je reviens à la charge concernant mon pb. Peut-etre m'étais-je mal exprimé la 1ere fois (je ne suis pas un habitué des forums) désolé.
D'apres une liste déroulante, je veux pouvoir choisir un mot, l'afficher dans un cadre "texte" et en cliquant sur un bouton, faire exécuter une action par rapport a ce mot. Je travaille sous perl avec Tk.
Je ne m'y connais pas enormément en Perl (Ca fait que 6 mois que j'ai commencé) mais je trouve ca interessant.
Si cela n'est pas assez clair, merci de me le dire. Cordialement.
bonsoir,
je reviens à la charge concernant mon pb.
Peut-etre m'étais-je mal exprimé la 1ere fois (je ne suis pas un habitué des
forums) désolé.
D'apres une liste déroulante, je veux pouvoir choisir un mot, l'afficher
dans un cadre "texte" et en cliquant sur un bouton, faire exécuter une
action par rapport a ce mot.
Je travaille sous perl avec Tk.
Je ne m'y connais pas enormément en Perl (Ca fait que 6 mois que j'ai
commencé) mais je trouve ca interessant.
Si cela n'est pas assez clair, merci de me le dire.
Cordialement.
bonsoir, je reviens à la charge concernant mon pb. Peut-etre m'étais-je mal exprimé la 1ere fois (je ne suis pas un habitué des forums) désolé.
D'apres une liste déroulante, je veux pouvoir choisir un mot, l'afficher dans un cadre "texte" et en cliquant sur un bouton, faire exécuter une action par rapport a ce mot. Je travaille sous perl avec Tk.
Je ne m'y connais pas enormément en Perl (Ca fait que 6 mois que j'ai commencé) mais je trouve ca interessant.
Si cela n'est pas assez clair, merci de me le dire. Cordialement.