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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| use strict;
my $FilePos= "c:\\pos.txt"; # Contient la vleur de la dernière lecture
my $WinIni = "c:\\OraStat.ini"; # Fichier à traiter
my $FileLog = "c:\\AlertLog.log"; # Fichier résultat
my $FILEINI = $WinIni ;
my $curpos = ""; # position courante du pointeur
my $Pos= ""; # Pointeur
my $RPos = ""; # Pointeur de lecture
my $ligne = ""; # Enregistrement courant
# ------------------------------------------------------------------
# Ecriture de la position du pointeur de lecture
sub Wpos {
open(POS,">$FilePos") or die "Impossible de créer $FilePos : $!";
print POS $curpos . "\n";
print $curpos ;
close(POS);
}
# ------------------------------------------------------------------
# Init du fichier des pointeurs
sub InitPos {
open(INI,$FILEINI) or die "Impossible ouvrir $FILEINI: $!";
while ($ligne = <INI>) {
print " ligne " . $ligne;
}
$curpos = tell(INI);
close(INI);
&Wpos();
} # fin de traitement fichier pos inexistant
# Si le fichier $FilePos n'existe pas
if (! -e $FilePos ) {
print " fichier inexistant : premier accés \n";
&InitPos();
}
# lecture de la dernière position
open(POS,"<$FilePos") or die "Impossible d'ouvrir $FilePos : $!";
while ($Pos = <POS>) {
print $Pos;
$RPos=$Pos;
}
close(POS);
open(INI,$FILEINI) or die "Impossible ouvrir $FILEINI: $!";
open(LOG,">>$FileLog") or die "Impossible ouvrir le fichier de log $FileLog: $!";
seek(INI,$RPos,0);
while ($ligne=<INI>) {
print " ligne " . $ligne;
print LOG $ligne;
}
close(LOG);
$curpos = tell(INI);
close(INI);
&Wpos; |