Convertir des octets en ko,mo, go et to

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 550 fois - Téléchargée 38 fois

Contenu du snippet

En fait c'est un modul de conversion trés trés pratique, de VbTom que j'ai corrigé (j'me suis aprecu apres que qq d'autre que moi l'avais fait mais bon) et ou j'ai ajouté la conversion en TeraOctect (sa sert a rien d'acord pk rien n'est actuellement aussi gros mais bon), voila @++

(
'-------------------------------------------
'vbtom
'e-mail : vbtom@free.fr
'site web : http://vbtom.phidji.com
'-------------------------------------------
)

Source / Exemple :


Public Function OctetsToKoMoGo(DATA) As String
Dim Décimales
Décimales = 2
Debug.Print DATA
If DATA < 1024 Then ' - d'1 Ko
    OctetsToKoMoGo = DATA & " Octets"
ElseIf DATA >= 1024 And DATA < (1024 ^ 2) Then ' Entre 1 Ko et 1023Ko
    OctetsToKoMoGo = (Round((DATA / 1024), Décimales)) & " Ko"
ElseIf DATA >= (1024 ^ 2) And DATA < (1024 ^ 3) Then 'Entre 1 Mo et 1023 Mo
    OctetsToKoMoGo = (Round((DATA / (1024 ^ 2)), Décimales)) & " Mo"
ElseIf DATA >= (1024 ^ 3) And DATA < (1024 ^ 4) Then 'Entre 1 Go et 1023 Go')
    OctetsToKoMoGo = (Round((DATA / (1024 ^ 3)), Décimales)) & " Go"
ElseIf DATA >= (1024 ^ 4) And DATA < (1024 ^ 5) Then 'Entre 1 To et 1023 To')
    OctetsToKoMoGo = (Round((DATA / (1024 ^ 4)), Décimales)) & " To"
End If
End Function

Conclusion :


Voila sinon je le entirement testé sauf pour le To
mais comme sa se base sur le meme principe que le rest je pense qu'il ny a pas de probleme.
Voila sinon encore merci a vbtom car ton modul m'est extremement utile et je m'en sert bcp !!!!

A voir également

Ajouter un commentaire

Commentaires

Messages postés
116
Date d'inscription
jeudi 12 juillet 2001
Statut
Membre
Dernière intervention
23 juin 2005

ba tu fait
OctetsToKoMoGo(Mataile*1024)
en multipliant par 1024 sa te donne la taille en octect (a partir de celle en ko) et en l'envoyant dans le module sa la convertie a l'unitée superieur si necesaire, donc si ta taile est superieure a 1024ko.
Messages postés
7
Date d'inscription
mercredi 11 octobre 2000
Statut
Membre
Dernière intervention
6 septembre 2006

Vraiment pas mal Je Prefere Celui Avec CASE deja parcequ'il Fonctionne sous .NET
Mais Une Question Comment On Fait Quand Le System Revoit deja En KB
merçi
Messages postés
2865
Date d'inscription
samedi 2 novembre 2002
Statut
Membre
Dernière intervention
11 mai 2009
9
pour debutant...
Messages postés
34
Date d'inscription
lundi 10 juin 2002
Statut
Membre
Dernière intervention
20 octobre 2009

il y a plus simple en utilisant une API :

Private Declare Function StrFormatByteSize Lib "shlwapi" Alias "StrFormatByteSizeA" _
(ByVal dw As Long, ByVal pszBuf As String, ByRef cchBuf As Long) As String

Private Function FormatKB(ByVal Amount As Long) As String
'formatte un nombre en KB, MB, ...
Dim buffer As String
Dim result As String

buffer = Space$(255)
result = StrFormatByteSize(Amount, buffer, Len(buffer))
If InStr(result, vbNullChar) > 1 Then
FormatKB = Left$(result, InStr(result, vbNullChar) - 1)
End If
End Function


exemple :
FormatKB 150000
donne "146 KB"
Messages postés
116
Date d'inscription
jeudi 12 juillet 2001
Statut
Membre
Dernière intervention
23 juin 2005

ouai bof on sen fo c le resultat qui compte de plus je pence pas qu'une des deux methode soit plus rapide que l'autre et perso je prefere les puissance (ya juste qu'a incrémenter) plutot que les chiffre.
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.