Problèmes Perl
Fermé
MrCanard
Messages postés
22
Date d'inscription
mercredi 16 juillet 2008
Statut
Membre
Dernière intervention
26 septembre 2008
-
16 juil. 2008 à 10:09
killtiret9 Messages postés 1 Date d'inscription vendredi 8 août 2008 Statut Membre Dernière intervention 8 août 2008 - 8 août 2008 à 14:24
killtiret9 Messages postés 1 Date d'inscription vendredi 8 août 2008 Statut Membre Dernière intervention 8 août 2008 - 8 août 2008 à 14:24
A voir également:
- Problèmes Perl
- Denon perl pro test - Accueil - Audio
- Active perl - Télécharger - Édition & Programmation
- Perl foreach ✓ - Forum Perl
- Perl substitution ✓ - Forum Perl
- [Perl] WWW::Mechanize - Forum Perl
4 réponses
davlar
Messages postés
75
Date d'inscription
lundi 26 novembre 2007
Statut
Membre
Dernière intervention
11 mai 2009
57
16 juil. 2008 à 23:40
16 juil. 2008 à 23:40
Voici la réponse. (Elle est à la fin)
http://www.commentcamarche.net/forum/affich 213976 suppression de doublons perl
Ou
Supprimer les doublons dans une liste
Ce module permet de supprimer les entrées en double dans un tableau.
use List::Uniq qw(:all);
open (my $fic9, "< Jobs.txt");
my @list = <$fic9>;
my @uniq_list = uniq(@list);
foreach my $line(@uniq_list) {
print "$line\n";
}
Dave
http://www.commentcamarche.net/forum/affich 213976 suppression de doublons perl
Ou
Supprimer les doublons dans une liste
Ce module permet de supprimer les entrées en double dans un tableau.
use List::Uniq qw(:all);
open (my $fic9, "< Jobs.txt");
my @list = <$fic9>;
my @uniq_list = uniq(@list);
foreach my $line(@uniq_list) {
print "$line\n";
}
Dave
davlar
Messages postés
75
Date d'inscription
lundi 26 novembre 2007
Statut
Membre
Dernière intervention
11 mai 2009
57
21 juil. 2008 à 17:17
21 juil. 2008 à 17:17
Hummm.
Effectivement, ça ne règle pas tout a fait ton problème. Ma présente réponse laisse une l'une des 2 lignes.
Dave
Effectivement, ça ne règle pas tout a fait ton problème. Ma présente réponse laisse une l'une des 2 lignes.
Dave
MrCanard
Messages postés
22
Date d'inscription
mercredi 16 juillet 2008
Statut
Membre
Dernière intervention
26 septembre 2008
1
22 juil. 2008 à 09:40
22 juil. 2008 à 09:40
Ouais c'est ça le problème ^^, c'est que j'arrive pas à laisser aucune des deux lignes ...
Merci quand même de te décarcasser pour moi :)
Canard
Merci quand même de te décarcasser pour moi :)
Canard
davlar
Messages postés
75
Date d'inscription
lundi 26 novembre 2007
Statut
Membre
Dernière intervention
11 mai 2009
57
23 juil. 2008 à 17:48
23 juil. 2008 à 17:48
Tient: C'est pas très élégant mais ça marche:
open (my $fic1, "< Jobs.txt");
my @liste = (sort(<$fic1>));
my @comparer = (sort(@liste));
my @liste_unique = ();
my $numArgs = $#liste +1;
my $existeendouble = 0;
foreach my $line(@liste)
{
for ($compteur = 0; $compteur < $numArgs; $compteur++)
{
$line =~ s/\s//g;
@comparer[$compteur] =~ s/\s//g;
if($line eq @comparer[$compteur])
{
$existeendouble += 1;
}
$compteur +1;
}
if ($existeendouble < 2)
{
push( @liste_unique, $line);
}
$existeendouble = 0;
}
print "Unique: @liste_unique\n";
A+ Dave
open (my $fic1, "< Jobs.txt");
my @liste = (sort(<$fic1>));
my @comparer = (sort(@liste));
my @liste_unique = ();
my $numArgs = $#liste +1;
my $existeendouble = 0;
foreach my $line(@liste)
{
for ($compteur = 0; $compteur < $numArgs; $compteur++)
{
$line =~ s/\s//g;
@comparer[$compteur] =~ s/\s//g;
if($line eq @comparer[$compteur])
{
$existeendouble += 1;
}
$compteur +1;
}
if ($existeendouble < 2)
{
push( @liste_unique, $line);
}
$existeendouble = 0;
}
print "Unique: @liste_unique\n";
A+ Dave
MrCanard
Messages postés
22
Date d'inscription
mercredi 16 juillet 2008
Statut
Membre
Dernière intervention
26 septembre 2008
1
24 juil. 2008 à 09:11
24 juil. 2008 à 09:11
Merci beaucoup il m'a l'air d'être plutôt pas mal, seul une question :) je l'ai testé et j'ai ça :
Scalar value @comparer[$compteur] better written as $comparer[$compteur] at C:\Documents and Settings\BOUAGUME\Mes documents\...\Recup_Job_Deux.pl line 273.
Scalar value @comparer[$compteur] better written as $comparer[$compteur] at C:\Documents and Settings\BOUAGUME\Mes documents\...\Recup_Job_Deux.pl line 275.
Global symbol "$compteur" requires explicit package name at C:\Documents and Settings\BOUAGUME\Mes documents\...\Recup_Job_Deux.pl line 270.
Global symbol "$compteur" requires explicit package name at C:\Documents and Settings\BOUAGUME\Mes documents\...\Recup_Job_Deux.pl line 270.
Global symbol "$compteur" requires explicit package name at C:\Documents and Settings\BOUAGUME\Mes documents\...\Recup_Job_Deux.pl line 270.
Global symbol "$compteur" requires explicit package name at C:\Documents and Settings\BOUAGUME\Mes documents\...\Recup_Job_Deux.pl line 273.
Global symbol "$compteur" requires explicit package name at C:\Documents and Settings\BOUAGUME\Mes documents\...\Recup_Job_Deux.pl line 275.
Global symbol "$compteur" requires explicit package name at C:\Documents and Settings\BOUAGUME\Mes documents\...\Recup_Job_Deux.pl line 279.
quand je l'éxécute dans l'invite de commande, car en direct il veut pas ^^ (j'ai bien rajouté un system("pause"); à la fin xD)
en tout cas merci de ton aide ;)
Canard
Scalar value @comparer[$compteur] better written as $comparer[$compteur] at C:\Documents and Settings\BOUAGUME\Mes documents\...\Recup_Job_Deux.pl line 273.
Scalar value @comparer[$compteur] better written as $comparer[$compteur] at C:\Documents and Settings\BOUAGUME\Mes documents\...\Recup_Job_Deux.pl line 275.
Global symbol "$compteur" requires explicit package name at C:\Documents and Settings\BOUAGUME\Mes documents\...\Recup_Job_Deux.pl line 270.
Global symbol "$compteur" requires explicit package name at C:\Documents and Settings\BOUAGUME\Mes documents\...\Recup_Job_Deux.pl line 270.
Global symbol "$compteur" requires explicit package name at C:\Documents and Settings\BOUAGUME\Mes documents\...\Recup_Job_Deux.pl line 270.
Global symbol "$compteur" requires explicit package name at C:\Documents and Settings\BOUAGUME\Mes documents\...\Recup_Job_Deux.pl line 273.
Global symbol "$compteur" requires explicit package name at C:\Documents and Settings\BOUAGUME\Mes documents\...\Recup_Job_Deux.pl line 275.
Global symbol "$compteur" requires explicit package name at C:\Documents and Settings\BOUAGUME\Mes documents\...\Recup_Job_Deux.pl line 279.
quand je l'éxécute dans l'invite de commande, car en direct il veut pas ^^ (j'ai bien rajouté un system("pause"); à la fin xD)
en tout cas merci de ton aide ;)
Canard
davlar
Messages postés
75
Date d'inscription
lundi 26 novembre 2007
Statut
Membre
Dernière intervention
11 mai 2009
57
>
MrCanard
Messages postés
22
Date d'inscription
mercredi 16 juillet 2008
Statut
Membre
Dernière intervention
26 septembre 2008
24 juil. 2008 à 15:01
24 juil. 2008 à 15:01
Fait la modification suivante:
Remplace --> @comparer[$compteur]
par --> $comparer[$compteur]
Et met un entête du genre : #!C:\perl\bin\perl.exe -X
Tu n'auras plus les avertissements.
A+
Dave
Remplace --> @comparer[$compteur]
par --> $comparer[$compteur]
Et met un entête du genre : #!C:\perl\bin\perl.exe -X
Tu n'auras plus les avertissements.
A+
Dave
killtiret9
Messages postés
1
Date d'inscription
vendredi 8 août 2008
Statut
Membre
Dernière intervention
8 août 2008
8 août 2008 à 14:24
8 août 2008 à 14:24
faux pas de handle de fichier il ne peut ouvrir jobs.txt déjà pour commencer
18 juil. 2008 à 15:04
Ta réponse me supprime un ou les deux du doublons ?
En tout cas, merci d'avoir répondu
Canard