Problème avec mon programme perl
Résolu
karinn
Messages postés
49
Date d'inscription
Statut
Membre
Dernière intervention
-
karinn Messages postés 49 Date d'inscription Statut Membre Dernière intervention -
karinn Messages postés 49 Date d'inscription Statut Membre Dernière intervention -
Bonjour !
Je travaille sous Perl en programmation et j'utilise Crimson Editor pour taper mes scripts....
J'ai un souci avec mon programme au niveau de la variable $trouve et je ne comprends pas pourquoi. Dans le shell, ils me disent bareword "oui" is not allowed... (je sais ce que ca veut dire mais bon ca ne m'aide pas vraiment).
En fait c'est depuis que j'ai intégré la partie avec la variable $trouve que j'ai un souci...(je le mets en italique).
En fait ce que je dois faire c'est ouvrir un fichier (qui sera un dico) et si le mot est dedans soit la traduction de ce mot est donnée soit on l'ajoute dans le dico...
Par contre SVP !!!! la facon dont j'ai l'habitude d'écrire en perl ne ressemble pas vraiment à tout ce que je vois sur le site donc : pas de commandes que je ne connais pas svp...en cas, j vous donnerai ce kj'ai eu en cours...
Voilà ce que j'ai fait jusqu'à présent :
#!usr/bin/perl
use strict;
use warnings;
my $rep;
my $rep2;
my $mot_langue;
my $mot_fr;
my $mot_ang;
my $trad_ang;
my $trad_fr;
my $texte_langue;
my $trouve;
my $ajout2;
my $nomfich;
my $fic_fr;
my $ficdico_fr;
my $ligne;
my $dico_fr;
my $nomfich1;
$nomfich=shift;
$nomfich1=shift;
print ("Voulez-vous traduire un mot, O ou N ?");
$rep=<STDIN>;
chomp $rep;
if ($rep eq "O") {
print ("Voulez-vous traduire un mot francais en anglais, 0 ou N ?");
$rep2=<STDIN>;
chomp $rep2;
if ($rep2 eq "O") {
print ("tapez le mot francais à traduire \n");
$mot_fr=<STDIN>;
chomp $mot_fr;
open $ficdico_fr,'<',"dico_fr.txt" or die "fichier non ouvert!\n";
$trouve=non;
if ($trouve==oui) {
print $trad_ang;
$trad_ang=<STDIN>;
chomp $trad_ang;
}
else {
if ($trouve==non) {
open $ficdico_fr,'>>',"dico_fr.txt" or die "fichier non ouvert!\n";
$ajout2="\n$dico_fr";
print $ficdico_fr $ajout2;
close $ficdico_fr;
open $ficdico_fr,'<',"dico_fr.txt" or die "fichier non ouvert!\n";
print " ";
while ($ligne=<$ficdico_fr>) {
print $ligne;}
}
}
}
else {
if ($rep2 eq "N") {
print ("tapez le mot anglais à traduire \n");
$mot_ang=<STDIN>;
chomp $mot_ang;
}
}
}
else {
if ($rep eq "N") {
print ("tapez le texte à traduire \n");
$texte_langue=<STDIN>;
chomp $texte_langue;
}
}
Voilà...j'espère que qqun pourra m'aider !!
merci d'avance
Je travaille sous Perl en programmation et j'utilise Crimson Editor pour taper mes scripts....
J'ai un souci avec mon programme au niveau de la variable $trouve et je ne comprends pas pourquoi. Dans le shell, ils me disent bareword "oui" is not allowed... (je sais ce que ca veut dire mais bon ca ne m'aide pas vraiment).
En fait c'est depuis que j'ai intégré la partie avec la variable $trouve que j'ai un souci...(je le mets en italique).
En fait ce que je dois faire c'est ouvrir un fichier (qui sera un dico) et si le mot est dedans soit la traduction de ce mot est donnée soit on l'ajoute dans le dico...
Par contre SVP !!!! la facon dont j'ai l'habitude d'écrire en perl ne ressemble pas vraiment à tout ce que je vois sur le site donc : pas de commandes que je ne connais pas svp...en cas, j vous donnerai ce kj'ai eu en cours...
Voilà ce que j'ai fait jusqu'à présent :
#!usr/bin/perl
use strict;
use warnings;
my $rep;
my $rep2;
my $mot_langue;
my $mot_fr;
my $mot_ang;
my $trad_ang;
my $trad_fr;
my $texte_langue;
my $trouve;
my $ajout2;
my $nomfich;
my $fic_fr;
my $ficdico_fr;
my $ligne;
my $dico_fr;
my $nomfich1;
$nomfich=shift;
$nomfich1=shift;
print ("Voulez-vous traduire un mot, O ou N ?");
$rep=<STDIN>;
chomp $rep;
if ($rep eq "O") {
print ("Voulez-vous traduire un mot francais en anglais, 0 ou N ?");
$rep2=<STDIN>;
chomp $rep2;
if ($rep2 eq "O") {
print ("tapez le mot francais à traduire \n");
$mot_fr=<STDIN>;
chomp $mot_fr;
open $ficdico_fr,'<',"dico_fr.txt" or die "fichier non ouvert!\n";
$trouve=non;
if ($trouve==oui) {
print $trad_ang;
$trad_ang=<STDIN>;
chomp $trad_ang;
}
else {
if ($trouve==non) {
open $ficdico_fr,'>>',"dico_fr.txt" or die "fichier non ouvert!\n";
$ajout2="\n$dico_fr";
print $ficdico_fr $ajout2;
close $ficdico_fr;
open $ficdico_fr,'<',"dico_fr.txt" or die "fichier non ouvert!\n";
print " ";
while ($ligne=<$ficdico_fr>) {
print $ligne;}
}
}
}
else {
if ($rep2 eq "N") {
print ("tapez le mot anglais à traduire \n");
$mot_ang=<STDIN>;
chomp $mot_ang;
}
}
}
else {
if ($rep eq "N") {
print ("tapez le texte à traduire \n");
$texte_langue=<STDIN>;
chomp $texte_langue;
}
}
Voilà...j'espère que qqun pourra m'aider !!
merci d'avance
A voir également:
- Problème avec mon programme perl
- Programme demarrage windows - Guide
- Message programmé iphone - Guide
- Mettre en veille un programme - Guide
- Programme word gratuit - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
43 réponses
en fait tout bien réfléchi j prefere garder mon ecriture perl ...cela dit, comme j't'ai dit, si j'ai besoin d'aide, je te fais signe ;-)
ben pour le script je n'arrete pas d'essayer...seulement quand je m'y mets j'ai l'esprit qui pense a tellement de choses en mm tps a propos de mon programme et la maniere de le faire que je m'y perds un peu...
sinon pour ce que tu m'as dit a propos des 2 scripts et tout , oui tkt pas c ce que je fai depuis le debut en changeant juste les variables...
au fait pour l'ajout des traductions dans les dico je me suis apercue qu'en fait ca marchait !! lol ...donc je suis contente
et la j bloque toujours sur la traduction de texte ( francais anglais pour le moment...aps je sais k j'aurais juste a copier coller changer les variables...)...je vais essayer de moins m'eparpiller...
merci pour ton script au fait mais je garde mon ecriture a moi...si je commence a ecrire autrement je ne vais plus m'en sortir...ya pas mal de trucs que je n'ai pas appris et que tu ecris toi (bien que j'aime apprendre de nouvelles choses là n'est pas le souci)...
bref
si jms je me perds de nouveau je te fais signe...
sinon pour ce que tu m'as dit a propos des 2 scripts et tout , oui tkt pas c ce que je fai depuis le debut en changeant juste les variables...
au fait pour l'ajout des traductions dans les dico je me suis apercue qu'en fait ca marchait !! lol ...donc je suis contente
et la j bloque toujours sur la traduction de texte ( francais anglais pour le moment...aps je sais k j'aurais juste a copier coller changer les variables...)...je vais essayer de moins m'eparpiller...
merci pour ton script au fait mais je garde mon ecriture a moi...si je commence a ecrire autrement je ne vais plus m'en sortir...ya pas mal de trucs que je n'ai pas appris et que tu ecris toi (bien que j'aime apprendre de nouvelles choses là n'est pas le souci)...
bref
si jms je me perds de nouveau je te fais signe...
coucou je viens de decouvrir que la prof a mis des cours sur le site de la fac...y compris les commandes et les différentes ecritures de code que tu m'as montrées...
donc je vais te piquer ton ecriture lol pask c clair et net que c largement plus pratique...
bon il faut que je vois qd mm pour la traduction de texte pask je bloque tjs sur comment extraire de ma ligne la traduction d'unmot...mais bon vu les nouveaux cours que j'ai ca devrait aller je pense...je viens de finir de les lire mais je vais les approfondir...
et si j'ai u truc que je comprends pas ben j ferai appel a tes bons services ;-)
donc je vais te piquer ton ecriture lol pask c clair et net que c largement plus pratique...
bon il faut que je vois qd mm pour la traduction de texte pask je bloque tjs sur comment extraire de ma ligne la traduction d'unmot...mais bon vu les nouveaux cours que j'ai ca devrait aller je pense...je viens de finir de les lire mais je vais les approfondir...
et si j'ai u truc que je comprends pas ben j ferai appel a tes bons services ;-)
c'est ton choix et je le respecte :-))
en revanche, je te conseille de faire d'abord l'algo avant d'écrire le code
c'est une étape à ne pas sauter
pour la partie aide, pas de problème :-))
pour la partie texte justement je comptais la commencer aujourd'hui vu le tps kil fait dehors lol...
pour l'algo oui j vais le faire :-) ...
et tkt pas j sais k tu n'imposes pas ton aide ;-)
mon souci est de savoir si c possible de mettre $mot1 en tableau pour ensuite les comparer avec la partie traduction des lignes de mes fichiers dictionnaires ("jeu game" pour F/A et "game jeu" pour A/F) ou si j dois faire des boucles "for", une qui prendrait le mot sur une ligne et une qui parcourrait les lignes ...??
tu comprends ce k j veux faire ou pas ??....ptetr k ma facon d'expliker n'est pas très claire...
merci d'avance en tout cas !
sinon j'ai rajouté la partie pour l'ajout des mots non connus et leur traduction dans le dico mais maintenant que je l'ai mise la partie traduction pure et simple de mots ne marche plus et je ne comprends pas pkoi ; autre chose : pour l'ajout dans le dico, seule l 'ajout dans le dico anglais marche vraiment et les mots apparaissent dans le dico a l'inverse du dico francais...sauf k'en enlevant la partie sur l'ajout des mots et de leur traduction dans le dico, la partie traduction remarche bien sûr mais pour le dico francais, les mots que j'ai voulu rajouter marchent aussi alors qu'ils ne sont pas ecrits dans le dico !!! va comprendre !!!
bref....
voila !