Salut la liste !
J'ecrit un pgm pour comptabilise mes connection internet (temp, bytes
send, ...)
Pour plus de facilit� j'ai plac� qque prc�dure dans un module
Mais voil� !
:~/dvpt/projets/ppp# ./comstat
:4: unterminated character constant
:6: unterminated character constant
0
Thu Jul 31 20:27:17 CEST 2003
Question comment expliquez vous les deux premi�re lignes ?
Comment y rem�dier ?
Merci � tous
En attachement mes source
Debut de library.pm
#!/usr/bin/parl -s -P
########################################################################
#######
# library.pm v 0.1
#
########################################################################
#######
package library;
#require Exporter;
[EMAIL PROTECTED] = qw(Exporter);
@EXPORT_OK = qw();
@EXPORT = qw( trimg trimd trim squeeze gettime mega datecurrent
erasefile datetoday strtotime anneebissextile modulo4);
########################################################################
#######
sub trimg()
#trim gauche de $imput. effacement de TOUT les blancs en DEBUT de ligne.
{
my ($var) = @_;
$var =~ s/^ +//;
return ($var);
}
sub trimd()
#trim droite de $imput. effacement de TOUT les blancs en FIN de ligne.
{
my ($var) = @_;
$input =~ s/ +$//;
return ($var);
}
sub trim()
#trim de $imput. effacement de TOUT les blancs en FIN et DEBUT de ligne.
{
my ($var) = @_;
$var =&trimg(&trimd($var));
return ($var);
}
sub squeeze()
# �limine toutes les s�quences de blanc
{
my ($var) = @_;
$var =~ s/ / /;
if ( $var =~ / / )
{
$var = &squeeze($var);
}
return($var);
}
sub gettime
#Formate et renvoie la date system
{
($ss, $mm, $hh, $jj, $MM, $aa, $se, $nb, $cest)= localtime(time);
$aa = $aa + 1900;
if ( $cest = 1 )
{
$cest="Heure d'�t�";
}
else
{
$cest="Heure d'hiver";
}
@date=($ss, $mm, $hh, $jj, $MM, $aa, $se, $nb, $cest);
return (@date);
}
sub datetoday()
# calcule le nombre de jours entiers �coul� entre la 1 du 1 1970 et une
date (ex: Mon Jul 28 16:59:11 CEST 2003)
{
my ($var) = @_;
my
(@mois)=("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","No
v","Dec");
my (@jour)=(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
my ($name_of_day, $name_of_month, $number_of_day, $time_string,
$fuseau, $year);
my ($year_ref) = 1970;
my ($temp) = &trim(@_);
my ($cpt) = $year_ref;
my ($reste, $bissextile, $normal, $i ) = (0, 0, 0, 0 );
my ($stjours, $retval) = (0, 0 );
# Total des ann�es en jours
($name_of_day, $name_of_month, $number_of_day, $time_string, $fuseau,
$year)= split(/ /,$temp);
for ($cpt=1970;$cpt<$year;$cpt++)
{
$i = 0;
$i = &anneebissextile($cpt);
if ( $i == 0 )
{
$normal++;
}
else
{
$bissextile++;
}
}
# Total des mois et des jours en jours
for ( $i=1; $name_of_day eq $jour[$i]; $i++ )
{
$stjours = $stjours + $jour[$i];
}
if ( $i > 2 )
{
$stjours = $stjours + &anneebissextile($year) + ( $number_of_day - 1)
;
}
else
{
$stjours = $stjours + ( $number_of_day - 1) ;
}
$retval = ($normal * 365 ) + ( $bissextile * 366 ) + $stjours;
return ($retval);
}
sub strtotime()
# calcule le nombre de seconde �couler entre la 1 du 1 1970 et une date
(ex: Mon Jul 28 16:59:11 CEST 2003)
{
my ($var) = @_;
my ($day) = 86400;
my ($hour) = 3600;
my ($year_ref) = 1970;
my ($temp) = &trim(@_);
my ($stjours, $stsecondes, $tsecondes) =( 0, 0, 0);
my ($anneejours) = 0;
my ($heures, $minut, $sec) = (0, 0, 0 );
my ($name_of_day, $name_of_month, $number_of_day, $time_string,
$fuseau, $year);
($name_of_day, $name_of_month, $number_of_day, $time_string, $fuseau,
$year)= split(/ /,$temp);
# Total des ann�es en jours
$anneejours = &datetoday($temp);
# Total des heures, des minutes et des secondes en secondes
($heures, $minut, $sec) = split(/:/,$time_string);
$stsecondes = ( $heures * $hour ) + ( $minut * 60 ) + $sec;
$tsecondes = ( ( $anneejours + $stjours ) * $day + $stsecondes);
return($stsecondes);
}
sub anneebissextile()
# ann�e bisextile ?
# si l'ann�e est bissextile la fonction retourne 1
# si l'ann�e n'est pas bissextile la fonction retourne 0
{
my ($var)[EMAIL PROTECTED];
my ($reste) = 0;
my ($retval) = 0;
my ($siecle) = 0;
$reste = $var % 100;
$siecle = $var - $reste;
if ( $reste == 0 )
{
$reste = &modulo4($siecle);
if ( $reste == 0 )
{
$retval++;
}
}
else
{
$reste = &modulo4($var);
if ( $reste == 0 )
{
$retval++;
}
}
return ($retval);
}
sub modulo4()
# calcule le reste de la division par 4
{
my ($var) = @_;
my ($reste) = 0;
$reste = $var % 4;
return ($reste);
}
sub mega()
{
my ($temp)[EMAIL PROTECTED];
my ($temp2);
my ($poids)="";
if ($temp <= 1048576 )
{
$temp = $temp / 1024;
$poids ="ko";
}
else
{
$temp = $temp / 1048576;
$poids ="Mo";
}
$temp2="$temp $poids";
return ($temp2);
}
sub datecurrent()
{
my (@listecur);
my ($ligne)="";
$ligne=&squeeze(&trim(@_));
@listecur=split(/ /,$ligne);
# print("day title: ".$listecur[0]."\n");
# print("Month: ".$listecur[1]."\n");
# print("day Number: ".$listecur[2]."\n");
# print("time: ".$listecur[3]."\n");
# print("saison: ".$listecur[4]."\n");
# print("year: ".$listecur[5]."\n");
return (@listecur);
}
sub erasefile()
{
my ($file)[EMAIL PROTECTED];
system ("/bin/rm $file");
}
sub senddebug()
{
print "Debug: @_\n";
}
sub sendecho()
{
print "flag: @_\n";
}
Debut comstat file
#!/usr/bin/perl -s -P
########################################################################
#######
# comstat v 0.1
#
########################################################################
#######
use library;
$str=" Thu Jul 31 20:27:17 CEST 2003";
$bis=3;
$bis=&library'anneebissextile("2003");
print "$bis\n";
$str2 = &library'trim($str);
print ("$str2\n");
_______________________________________________________
Linux Mailing List - http://www.unixtech.be
Subscribe/Unsubscribe: http://www.unixtech.be/mailman/listinfo/linux
Archives: http://www.mail-archive.com/[EMAIL PROTECTED]
IRC: efnet.unixtech.be:6667 - #unixtech