1)
Actuellement j'ai un petit script perl qui utilise un system ("wget ...");
pour recuperer
un fichier sur le net disponible en download....
J'aimerais savoir si on peut le faire plus proprement et notamment controler
le bon deroulement
du download ? style sortir une erreur si un probleme survient (url qui
reponds pas, fichier inexistant etc ..)
2) Exist 'il une solution simple pour comparer deux fichiers textes afin
d'en sortir un seul sans doublon ?
actuellement j'ai deux fichiers texte, chacun est de format simple (1 nom et
prenom par ligne) j'aimerais les
regrouper automatiquement en un seul sans mettre des doubles noms
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
Paul Gaborit
À (at) Wed, 27 Oct 2004 08:50:13 +0200, "Mylene Sigod" écrivait (wrote):
Actuellement j'ai un petit script perl qui utilise un system ("wget ..."); pour recuperer un fichier sur le net disponible en download....
J'aimerais savoir si on peut le faire plus proprement et notamment controler le bon deroulement du download ? style sortir une erreur si un probleme survient (url qui reponds pas, fichier inexistant etc ..)
Le module LWP (et LWP::Simple) permet de faire cela pour du FTP, du HTTP...
2) Exist 'il une solution simple pour comparer deux fichiers textes afin d'en sortir un seul sans doublon ? actuellement j'ai deux fichiers texte, chacun est de format simple (1 nom et prenom par ligne) j'aimerais les regrouper automatiquement en un seul sans mettre des doubles noms
Si le contenu des deux fichiers tient en mémoire, c'est très simple. Il suffit de passer par une table de hachage :
my %h; foreach my $file ("fichier1.txt", "fichier2.txt") { open my $f, "<", $file or die "pb avec '$file' : $!n"; while (<$f>) { chomp; $h{$_} = 1; } close $f; }
foreach my $key (sort keys %h) { print "$keyn"; }
Le résultat de la fusion sera affiché à l'écran. Il ne vous reste plus qu'à le rediriger vers un nouveau fichier. Ce programme suppose quand même que les doublons sont exactement identiques.
Si les fichiers sont gros, il faut utiliser une autre méthode pour ne pas tout stocker en mémoire. Si les fichiers sont déjà triés, on peut utiliser une méthode plus efficace (qui va plus vite et qui ne nécessite pas de tout stocker en mémoire).
-- Paul Gaborit - <http://www.enstimac.fr/~gaborit/> Perl en français - <http://www.enstimac.fr/Perl/>
À (at) Wed, 27 Oct 2004 08:50:13 +0200,
"Mylene Sigod" <Mylene.Sigod@laposte.net> écrivait (wrote):
Actuellement j'ai un petit script perl qui utilise un system ("wget ...");
pour recuperer un fichier sur le net disponible en download....
J'aimerais savoir si on peut le faire plus proprement et notamment controler
le bon deroulement du download ? style sortir une erreur si un probleme
survient (url qui reponds pas, fichier inexistant etc ..)
Le module LWP (et LWP::Simple) permet de faire cela pour du FTP, du HTTP...
2) Exist 'il une solution simple pour comparer deux fichiers textes afin
d'en sortir un seul sans doublon ?
actuellement j'ai deux fichiers texte, chacun est de format simple (1 nom et
prenom par ligne) j'aimerais les regrouper automatiquement en un seul sans
mettre des doubles noms
Si le contenu des deux fichiers tient en mémoire, c'est très simple. Il suffit
de passer par une table de hachage :
my %h;
foreach my $file ("fichier1.txt", "fichier2.txt") {
open my $f, "<", $file or die "pb avec '$file' : $!n";
while (<$f>) {
chomp;
$h{$_} = 1;
}
close $f;
}
foreach my $key (sort keys %h) {
print "$keyn";
}
Le résultat de la fusion sera affiché à l'écran. Il ne vous reste plus qu'à le
rediriger vers un nouveau fichier. Ce programme suppose quand même que les
doublons sont exactement identiques.
Si les fichiers sont gros, il faut utiliser une autre méthode pour ne pas tout
stocker en mémoire. Si les fichiers sont déjà triés, on peut utiliser une
méthode plus efficace (qui va plus vite et qui ne nécessite pas de tout
stocker en mémoire).
--
Paul Gaborit - <http://www.enstimac.fr/~gaborit/>
Perl en français - <http://www.enstimac.fr/Perl/>
À (at) Wed, 27 Oct 2004 08:50:13 +0200, "Mylene Sigod" écrivait (wrote):
Actuellement j'ai un petit script perl qui utilise un system ("wget ..."); pour recuperer un fichier sur le net disponible en download....
J'aimerais savoir si on peut le faire plus proprement et notamment controler le bon deroulement du download ? style sortir une erreur si un probleme survient (url qui reponds pas, fichier inexistant etc ..)
Le module LWP (et LWP::Simple) permet de faire cela pour du FTP, du HTTP...
2) Exist 'il une solution simple pour comparer deux fichiers textes afin d'en sortir un seul sans doublon ? actuellement j'ai deux fichiers texte, chacun est de format simple (1 nom et prenom par ligne) j'aimerais les regrouper automatiquement en un seul sans mettre des doubles noms
Si le contenu des deux fichiers tient en mémoire, c'est très simple. Il suffit de passer par une table de hachage :
my %h; foreach my $file ("fichier1.txt", "fichier2.txt") { open my $f, "<", $file or die "pb avec '$file' : $!n"; while (<$f>) { chomp; $h{$_} = 1; } close $f; }
foreach my $key (sort keys %h) { print "$keyn"; }
Le résultat de la fusion sera affiché à l'écran. Il ne vous reste plus qu'à le rediriger vers un nouveau fichier. Ce programme suppose quand même que les doublons sont exactement identiques.
Si les fichiers sont gros, il faut utiliser une autre méthode pour ne pas tout stocker en mémoire. Si les fichiers sont déjà triés, on peut utiliser une méthode plus efficace (qui va plus vite et qui ne nécessite pas de tout stocker en mémoire).
-- Paul Gaborit - <http://www.enstimac.fr/~gaborit/> Perl en français - <http://www.enstimac.fr/Perl/>