précédant | suivant | sommaire

Exemple:   convertir un fichier.ldif (carnet d'adresse) en rapport écran ou autre


exemple de script perl qui transforme un fichier .ldif (carnet-d'adresse) en un rapport, mais aussi en un fichier .csv dirrectement téléchargable par tout les tableurs
( Excel, Gnumeric, Word, db, Access, Works, Lotus 123 etc...)

#!/usr/bin/perl
# remd: test sur les exp_reg pour ldif2r.pl | alain Adelmar 28 févr 2001

$x="x"x25;# ligne d'x pour la presentation
$a=$b=$c=$d=0;#initialisation pour test

LABEL_TOP:print"Entrez le nom du fichier à traiter:\n";
chomp($fldif=<STDIN>);
$u=0;# initialisation de boucle spéciale pour les groupes de noms

if(-e$fldif){
$df=localtime(-C$fldif);
print"\n$x\nRapport du contenu de $fldif $df\n";
# verif
($file,$ext)=split(/\./,$fldif);
print"test: nom de fichier = $file et son extention = $ext\n";
}
else{
warn"Erreur, le fichier $fldif n\'existe pas\n";
gotoLABEL_TOP;
}
 

#ouverture du fichier
openF,"$fldif"ordie"Ouverture de $fldif impossible $!";
@contenu=<F>;
closeF;

foreach$line(@contenu){
if($line=~/^dn/){
($nom,$mail)=split(/,/,$line);
$nom=~s/^\w{2}:\s\w{2}=()/$1/;
$mail=~s/^mail=()/$1/;
chomp($mail);
$u++;# nombre de lignes qui collent
}
elsif($line=~/^telephonenumber:/){
# cette fois je me sers que de split pour le fun.........
($kk,$tel)=split(/:/,$line);
$tel=~s/^\s()/$1/;
print"$tel\n";
}
else{
$a++;# nombre de ligne visitées
next;
}
write;
$mail=$nom=$tel="";