help me

Stato
Discussione chiusa ad ulteriori risposte.

C1nC1n

Utente Silver
14 Novembre 2008
0
0
0
57
Cya all, sono stato "incaricato" di scrivere uno script che scriva in un file la data esatta, anche se qualcuno modifica quella di sistema..ora io ho scritto qualcosina ieri notte e cioe un primo script che prende per la prima volta la data dal sistema e la scrive in 1 file:
Codice:
#!/usr/bin/perl
use POSIX qw( strftime );
my $mm = strftime("%m", localtime);
my $dd = strftime("%d", localtime);
my $yyyy = strftime("%Y", localtime);
open(MONTH,">month.txt");
print MONTH "$mm";
close(MONTH);
open(DAY,">day.txt");
print DAY "$dd";
close(DAY);
open(YEAR,">year.txt");
print YEAR "$yyyy";
close(YEAR);
un secondo che fa partire un terzo con wperl in modo che questo terzo stia in background
Codice:
#!/usr/bin/perl
exec('wperl.exe time.pl');
e infine il terzo script che prende la data presa dal primo e ogni 24 ore va avanti di un giorno:
Codice:
#!/usr/bin/perl
open(MONTH,"<month.txt");
open(YEAR,"<year.txt");
open(DAY,"<day.txt");

while($rig=<MONTH>){
$mm=$rig;
}

while($rig1=<DAY>){
$dd=$rig1;
}

while($rig2=<YEAR>){
$yy=$rig2;
}


$yy_count=$yy;
$dd_count;
$dd_count=$dd;
$mm_count;
$mm_count = $mm;
if($mm_count == 01){
$month=32;
}elsif($mm_count == 2){
$month=29;}elsif($mm_count == 3){
$month=32;}elsif($mm_count == 4){
$month=31;}elsif($mm_count == 5){
$month=32;}elsif($mm_count == 6){
$month=31;}elsif($mm_count == 7){
$month=32;}elsif($mm_count == 8){
$month=32;}elsif($mm_count == 9){
$month=31;}elsif($mm_count == 10){
$month=32;}elsif($mm_count == 11){
$month=31;}elsif($mm_count == 12){
$month=32;}

for($i=1;$i<9999999999999999999999999999999999999999999999999;$i++){
sleep(86400);
$dd_count=$dd_count+1;

if($dd_count == $month){
$mm_count=$mm_count+1;
if($mm_count == 1){
$month=32;}elsif($mm_count == 2){
$month=29;}elsif($mm_count == 3){
$month=32;}elsif($mm_count == 4){
$month=31;}elsif($mm_count == 5){
$month=32;}elsif($mm_count == 6){
$month=31;}elsif($mm_count == 7){
$month=32;}elsif($mm_count == 8){
$month=32;}elsif($mm_count == 9){
$month=31;}elsif($mm_count == 10){
$month=32;}elsif($mm_count == 11){
$month=31;}elsif($mm_count == 12){
$month=32;}

$dd_count=1;
}

if($mm_count == 13){
$yy_count = $yy_count+1;
$mm_count=1;
}

open(DDD,">day.txt");
print DDD "$dd_count";
open(MMM,">month.txt");
print MMM "$mm_count";
open(YYYY,">year.txt");
print YYYY "$yy_count";
close(DDD);
close(MMM);
close(YYYY);

}
il problema è che questo potrebbe funzionare solo se il pc rimanesse sempre acceso..contando che questo ipotetico pc non abbia connessione a internet da cui magari ogni volta prendere la data giusta..come posso fare? qualche idea?..grazie a tutti in anticipo :)
 
Mhm, la vedo abbastanza difficile senza connessione ad internet, anche se, mi ricordo, che msn quando la data di sistema è sballata non si connette, ora non so se sia uno script interno a msn o se confronti la data con quella di internet....prova ad informarti su questo fatto, io ne so poco. Al limite puoi provare un mezzo Debug di msnRepair, il programma sicuramente fa il controllo anche sulla data del pc, magari riesci a ricavarne qualcosa ;)
 
Stato
Discussione chiusa ad ulteriori risposte.