Lecture de fichier à la chaine
Bonjour,
Je m'explique, dans un but d'éffectuer des statistiques il me faut ouvrir plusieurs fichiers correspondant à des dates.
Les fichiers sont stockés dans le répertoire /racine/année/mois/jour.
L'utilisateur qui execute le programme de statistique doit choisir l'intervalle de temps entre lequel il veut effectuer ces statistiques.
Il saisi l'intervalle sous forme (debut) 12/02/2008 (à) 10:00:00 (heure)
idem pour la fin.
Je dois donc ouvrir tous les fichiers compris dans l'intervalle.
Les fichiers correspondant n'existent pas forcément donc il me faut outrepasser ça :)
Et puis biensure après le 31/30 on change de mois et après décembre on change d'année :D
... C'est dure ^^
Voilà ce que j'ai écrit comme fonction après la saisie utilisateur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| while ($annee_d != $annee_f or $mois_d != $mois_f or $jour_d != $jour_f) {
print "entrer dans le while\njour = $jour_d\nmois: $mois_d\nannee: $annee_d\n";
if (chdir '/donnees/SaveDoc/ProjetC/ProjetC/' . "$annee_d" . '/' . "$mois_d" == 0) {
print "dossier ouvert\n";
if (open (FIC, '>' . "$jour_d") == 0) {
print "fichier $jour_d ouvert dans le repertoire /$annee_d/$mois_d\n";
}
else {
if ($jour_d < 31) {
$jour_d++;
}
elsif ($mois_d == 12 and $jour_d == 31) {
$jour_d == 01;
$mois_d == 01;
$annee_d++;
}
elsif ($jour_d == 31) {
$jour_d = 01;
$mois_d++;
}
else {
die "Oula grosse couillasse! ! ! :)";
}
}
}
else {
if ($mois_d == 12) {
$mois_d = 01;
$annee_d++;
}
else {
$mois++;
}
}
} |
Explication annexe : annee_d , mois_d, jour_d correspondent a la saisie utilisateur pour le depart des statistiques ex 24/02/2008 annee_d = 2008 mois_d = 02 jour_d = 24
annee_f, mois_f, jour_f correspondent a la saisie utilisateur pour la fin des statistiques sur le meme model.
Une autre chose les jour < 10 sont sous la forme 01 -02 -03 ....
est ce que quand je fais jour++ j'obtiendrai un resultat de la forme 0x.