Archiv verlassen und diese Seite im Standarddesign anzeigen : Von bytes in MB umrechnen
Linuxfreak
09-06-2001, 16:38
Hallo alle miteinander,
folgendes habe ich meinem perl script stehen:
# TRANSFER
open (TRANSFER, "<$tmp.transfer");
while (<TRANSFER>)
{
$sent += substr ($_, ($b=index($_, "Sent ")+5), index($_, " byte")-$b);
$recv += substr ($_, ($b=index($_, "received ")+9), index($_, " byte", $b)-$b);
}
close (TRANSFER);
Damit wird mir mein bytes errechnet. Wo und was muß ich jetzt noch nachträglich eintragen, damit die Bytes in MB umgerechnet werden?
Danke
jgbauman
10-06-2001, 02:23
Suchst Du sowas?
# TRANSFER
open (TRANSFER, "<$tmp.transfer");
while ()
{
$sent += substr ($_, ($b=index($_, "Sent ")+5), index($_, " byte")-$b);
$recv += substr ($_, ($b=index($_, "received ")+9), index($_, " byte", $b)-$b);
}
$sent /= 1024 * 1024 ;
$recv /= 1024 * 1024 ;
close (TRANSFER);
Aber wahrscheinlich hab ich dich falsch verstanden, denn das waere ja fast zu einfach?
Linuxfreak
10-06-2001, 09:34
Hallo jgbauman,
nein sowas suchte ich. Für jemand der Ahnung hat ist das bestimmt einfach, für mich leider nicht ;)
Aber irgendwo ist da noch ein fehler:
Ohne dein Zusatz bekomme ich:95´322´535
mit deinem Zusatz: 9´0.9´066´534´042´358
Passt irgendwie nicht,oder?
Das script soll meine messages durchsuchen um mir meine monatlichen Transfer Volumen berechnen. Aber scheinbar habe ich da noch ein bug drin.
stimmt doch
95millionen bytes sind ca 90MB
Linuxfreak
10-06-2001, 13:41
Ups, was habe ich den da wieder berechnet? :confused:
Aber wie bekomme ich daraus ein vernümpftiges Format?
9´0.9´066´534´042´358 sieht etwas blöd aus.
jgbauman
10-06-2001, 14:16
Sorry, sollte nicht beleidigend oder ueberheblich klingen. Aber
nachdem Du schon ein soviel Skript selber geschrieben hattest, dachte ich, einfach zu dividieren, waere kein Problem ;-)
Fuer formatierte Ausgabe steht printf zur Verfuegung. (Fuer Details siehe man printf zur entsprechenden C-Funktion).
so gibt:
printf "%.2f", $x;
Die Zahl aus der Variablen $x mit zwei Stellen hinter dem Komma(Punkt) an.
Wenn Du die beiden neuen Zeilen weglaesst und stattdessen folgende einfuegst, kriegst Du eine uebersichtlichere Ausgabe ('\n' steht fuer Zeilenumbruch:
printf "gesendet: %.2f MB\nempfangen: %.2f MB\n", $sent / (1024*1024), $recv / (1024*1024);
Ein MegaByte ist halt eigentlich 1024*1024=1048576 Bytes. [Ausser bei Festplattenherstellern, da sinds oft 1000*1000. Naja 95 statt 90 klingt in der Werbung einfach besser :-( ]
Linuxfreak
12-06-2001, 11:54
Hallo jgbauman,
habe ich auch nicht so empfunden.
Nein das Scrip ist NICHT von mir.
Ich habe das script im Inet gefunden und wollte es nur anpassen.
Danke für die Tipps.
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.