Communauté Eggdrop

Version complète : Convertir un nombre d'octets en ko/Mo/Go/To/Po/Eo/Zo ou kio/Mio/Gio/Tio/Pio/Eio/Zio
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Code de MenzAgitat

TCL
proc octet_formatting {value {SI 1}} {
	if { $SI } {
		set base 1024
		set units {Kio Mio Gio Tio Pio Eio Zio}
	} else {
		set base 1000
		set units {Ko Mo Go To Po Eo Zo}
	}   
	if { $value < $base } { return "${value}o" }
	foreach unit $units {
		set value [expr {$value / ($base / 1.0)} ]
		if { $value < $base } {
			return "[format %1.2f $value]$unit"
		}
	}
}



Conversion inverse
TCL
proc form2oct {formated} {
	set usi {kio Mio Gio Tio Pio Eio Zio}
	set units {ko Mo Go To Po Eo Zo}
	set base 1000
	regexp {([0-9\.]+)(\w+)} $formated - s u
	if {$u in $usi} {
		set units $usi
		set base 1024
	}
	for {set i [lsearch $units $u]} {$i>=0} {incr i -1} {
		set s [expr $s * $base]
	}
	return $s
}