PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Perl Downloadstatusanzeige nur wie?


Loader007
31.12.2007, 04:46
Hallo ich habe mir nun ein Script geschrieben was mir nach einer Postanfreage den reques speicher als downläd nur hätte ich gerne angezeit wie weit er ist !
Deswegen möchte ich es so prgrammiren das mir eine Statusanzeige den Aktuellen Fortschritt in % ausgibt also sowas


1%========================================>100%

so weget ähnlichallerdings bin ich daetwas überfordert ist das auf diese art überhaupt möglich ?

mein code!



my $ua = LWP::UserAgent->new;
my $request = new HTTP::Request('POST', $rl_url);
$request->content('mirror=on&accesscode='.$cap2.'&actionstring=YES');
$request->content_type('application/x-www-form-urlencoded');
my $response = $ua->request($request);
my $getit = $response->content;



open(ADRESSENDAT, ">>C:\\Downloads\\$name");
binmode(ADRESSENDAT);
print ADRESSENDAT $getit;

close(ADRESSENDAT);
#//////////////////////////////////////////////////////////////////////////////////////////////////


kill4h`
31.12.2007, 11:02
Ich könnte mir das so vorstellen:
Du liest die Größe des Files aus dem Header aus und prüfst immer wieder, wie viel du schon geladen hast. Dann kannst du den aktuellen Prozentsatz auslesen.

eViL_oNe
31.12.2007, 14:34
Schau dir mal die Callback-Methoden von LWP::UserAgent an

http://search.cpan.org/~gaas/libwww-perl-5.808/lib/LWP/UserAgent.pm#Callback_methods

Loader007
02.01.2008, 01:41
also das mit dem auslesen bekomm ich ja locker hin nur wie soll ich das vergleichen ist es nciht so das in meinem Script der erst die daten schriebnt und dann weiter macht wo müsste ich dann den vergleich eintragen knn mir einer mal ein bsp geben vileicht gibts ja auch ne bessere methode die daten zu speichern?

kill4h`
02.01.2008, 11:52
eViL_oNe hat dir in seinem Post (danke dir übrigens dafür, kannte ich auch noch nicht :) ) ja schon alles zu Füßen gelegt:
$ua->progress( $status, $response )
This is called frequently as the response is received regardless of how the content is processed. The method is called with $status "begin" at the start of processing the request and with $state "end" before the request method returns. In between these $status will be the fraction of the response currently received or the string "tick" if the fraction can't be calculated.
Spiel damit einfach mal ein bisschen rum und google mal danach, bin sicher, du wirst einiges an Material finden. Auch eine Suche bei Google Labs (http://labs.google.de) könnte was bringen.

Loader007
02.01.2008, 17:32
ja danke ich hab da erst nicht durchgeblickt sorry noch ma danke ist sehr interessant