a400der

alain Adelmar
aadelmar@numericable.fr beuuh c est quoi ca

Ce script Perl est trés vieux, et je le laisse ici qu'à titre d'exemple.

400der exemple de programme qui depuis un fichier téléchargé sur http://www.videoposte.com/videoposte/ au format html
qui relate vos 400 derniéres opérations sur votre ccp. Créé 3 rapports, un fichier texte, un fichier.csv un rapport écran imprimable. Le tout vous permettra de gérer votre compte et d'accéder à vos opérations de les charger dans un tableur (csv)
Et le programme vous permet même de questionner l'ordinateur sur la date la désignation le total en francs et euro d'une transaction choisi par numéro.
Ci dessous une version en couleur, trouver la derniére version de ce programme ici


#!/usr/bin/perl -w
# remd: netoyage de page shtml de (400 dernieres operations ccp) 
# pour en sortir un fichier texte list par operation et une table de hash
# pour rechercher une operation par la date ou le montant ou le label, 
# alain adelmar nov 2000
# *******************************************ce prog tourne a merveille

formatSTDOUT_TOP=
Page@<<
$%

DateTransactionfrancseuros
=============================================
.
 

print"Entrez le nom du fichier a traiter\n";
$file=<STDIN>;
print"je traite le fichier $file\n";
 

$filout="./log_a.txt";
$filoutcsv="log400tr.csv";

#----------- construction du hash de hash et de la liste de liste.
$t400trs{$a}=("$tdates{$a}","$tdesigns{$a}","$tfrancs{$a}","$teuros{$a}");
@ttr400ccp=(@tdate,@tfrancs,@teuro,@tdesign);
 

$t=0;# compte les lignes du fichier source

$a=$b=0;# francs ou euro (initialisation des tab & ls, nmb de tr).

open(F,"$file")ordie"merde pbOpsrc $!";
@contenu=<F>;
closeFordie"remerde pbfermsrc $!";

@nwcontenu=<FO>;
@tcsv=<FV>;

foreach$ligne(@contenu){
$t++;
if($t<=82){
print"#";
}
elsif($t<=83){
$ligne="date,designation,francs,euros"."\n";
tlib_csv($ligne);
print"\ntraitement maintenant\n";
}
else{
$ligne=~s/^(<.*?>)?//;
$ligne=~s/^(<.*?>)?//;

$ligne=~s/()(<.*?>)+//;
$ligne=~s/()(<.*?>)+//;

$ligne=~s/\n//;# ote les sauts de lignes.
nextif($ligneeq"");# et degage les ligne vides.
$u++;

# reconnaitre le champ francs et le champ euro. (1/2)
if($ligne=~m/^\d{0,1}.*?\d{1,3}.?\d{2}&nbsp/){
if($a==$b){
$ligne=~s/().{1}nbsp.?//;
$tfrancs{$a}=$ligne;# ajoute un element a %tfrancs.
#*****format
$lf=$ligne;# ligne francs = $ligne
chomp$lf;
#*****tabl @tfrancs
push@tfrancs,$ligne;# liste tfrancs
#**********
$lcsv=$ligne;
$lcsv=~s/,/./;
$lcsv=$lcsv.",";
push@tcsv,$lcsv;
#**********
$ligne=$ligne." francs";
$a++;
}
else{
$ligne=~s/().{1}nbsp.?//;
$teuros{$a}=$ligne;#ajoute un element a %teuros.
$le=$ligne;
chomp$le;
write;
#************
$lcsv=$ligne;
$lcsv=~s/,/./;
$lcsv=$lcsv."\n";
push@tcsv,$lcsv;
#************
push@teuro,$ligne;# ass de la liste teuro.
$ligne=$ligne." euro\n";
$b++;
}
}

# reconnaitre le champ date.
elsif($ligne=~m/^\d{2}\/\d{2}/){
$tdates{$a}=$ligne;#ajoute un element a %tdates.
#*******format
$ldt=$ligne;
chomp$ldt;
#*******tabl @tdate
push@tdate,$ligne;# assignation de la liste tdate
#************
$lcsv=$ligne;
$lcsv=$ligne.",";
push@tcsv,$lcsv;
#************
$ligne=$ligne."\t";
}
elsif($ligne=~m/^.*?\w.?/){
$tdesign{$a}=$ligne;# ajoute un element a %tdesigns.
#**********format
$ldg=$ligne;
chomp$ldg;
#**********tableau design
push@tdesign,$ligne;
#**********fichier csv
$lcsv=$ligne;
$lcsv=$lcsv.",";
push@tcsv,$lcsv;

#**********************************alignement sans format***
if(length$ligne<=16){
$ligne=$ligne."\t\t\t\t";
}
elsif(length$ligne<=24){
$ligne=$ligne."\t\t\t";
}
elsif(length$ligne<=32){
$ligne=$ligne."\t\t";
}
else{
$ligne=$ligne."\t";
}
}
push@nwcontenu,$ligne;
}
}

subtlib_csv{
my($ligne)=@_;
push@tcsv,$ligne;
}

print"\n$t lignes traitees pour $a operations enregistrees.\n";

#*********************************
# confection d'un fichier db
 

#@ttr400ccp = (@tdate, @tfrancs, @teuro, @tdesign);

open(FO,">$filout")ordie"merde pbOpcible $!";
printFO@nwcontenu;
closeFOordie"rem pbfermcible $!";

open(FV,">$filoutcsv")ordie"mutain de poine ca couille pbOpfls $!";
printFV@tcsv;
closeFVordie"flute that's os pbShutfls $!";

print"Voilà, les deux fichier sont créés:\nlog_a.txt => pour un listing texte\nlog400tr.csv => pour une db (séparé par des virgule).\n";

print" Voulez vous jeté une oeil ? [o/n]\n";
$resp=<STDIN>;

#-------- appel a oui_non dans boucle while, fort isn't it ?
while(!oui_non($resp)){
print"indiquer le numéro de la transaction:\n";
$numt=<STDIN>;
chomp$numt;
$linep=$t400trs{$numt};
# $linep = $ttr400ccp["$numt"];
print"transaction $numt = $linep\n";
print"voulez vous continuer ? [o-n]\n";
$resp=<STDIN>;
}

print"tchao !!\n";

#-------------- oui-non -----faire une routine qui renvoie 1 si oui
suboui_non{
my($rep)=@_;

$rep=~s/\W.*//;
$resp=~tr/A-Z/a-z/;
if($rep=~/^o|y/){
return0;# faux pour while(! oui_non($resp))
}
else{
return1;# vrai pour sortir
}
}

formatSTDOUT=
@<<<<<@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<@<<<<<<<<@<<<<<<<
$ldt, $ldg, $lf, $le
.

END;

alain Adelmar                            email :             a.adelmar@numericable.fr

                                retour en haut de la page