Soyez le premier à donner votre avis sur cette source.
Vue 3 807 fois - Téléchargée 264 fois
Public Function TailleFic(chemin As String) As String Dim valeur As Variant Dim unit As String 'taille du fichier en octets valeur = FileLen(chemin) ' conversion de la taille dans l'unité appropriée If valeur < 1000 Then unit = "octets" ElseIf valeur / 1024 < 1000 Then unit = "Ko" valeur = Left(valeur / 1024, 4) ElseIf valeur / 1024 ^ 2 < 1000 Then unit = "Mo" valeur = Left(valeur / 1024 ^ 2, 5) ElseIf valeur / 1024 ^ 3 < 1000 Then unit = "Go" valeur = Left(valeur / 1024 ^ 3, 4) End If TailleFic = valeur & " " & unit End Function
7 févr. 2008 à 22:07
Function ConvertFileLength(ByVal length As Long, Optional ByVal maxdecimal As Integer = 2) As String
' Convertis la taille d'un fichier en octets sous forme d'une chaîne de caractères avec l'unité correspondante
Dim SizeString As String = Nothing If length > 1073741824 Or length 1073741824 Then SizeString length / 1073741824 & " Go" If length > 1048576 And length < 1073741824 Or length 1048576 Then SizeString length / 1048576 & " Mo" If length > 1024 And length < 1048576 Or length 1024 Then SizeString length / 1024 & " Ko"
If length < 1024 Then SizeString = length & " octets"
If SizeString.Contains(",") Then
Dim parts() = Split(SizeString, ",")
Dim parts_() = Split(parts(1), " ")
Dim decimals As Integer If maxdecimal 0 Then maxdecimal 1
If parts_(0).ToString.Length < 2 Then decimals = parts_(0).ToString If parts_(0).ToString.Length 3 Then decimals parts_(0).ToString.Remove(1, parts_(0).ToString.Length - 1)
If parts_(0).ToString.Length > 3 Then decimals = parts_(0).ToString.Remove(maxdecimal, parts_(0).ToString.Length - maxdecimal)
SizeString = parts(0) & "," & decimals & " " & parts_(1)
End If
Return SizeString
End Function
L'option maxdecimal évite d'avoir un nombre inconsidéré de décimales ^^
18 juin 2006 à 21:49
Il y a une petit différente !
Il sont passé où les 4,2 Go manquant ????
18 juin 2006 à 19:54
et vla-Da-DAM !!! çà affiche : -130365440 octets
sans commentaires ...
6 sept. 2005 à 19:37
Pour toi voila la fonction que j'ai créer qui fiat la même chose que la tienne ! De plus elle gére plus unité (c pour le futur)
Voila ma source :
Function unite(taille As Long) As String
Dim tabunite
Dim i As Integer
tabunite = Array("o", "Ko", "Mo", "Go", "To", "Po", "Eo", "Zo", "Yo")
i = 0
Do While taille >= 1024 And i < 8
taille = taille / 1024
i = i + 1
Loop
unite = Round(taille, 2) & " " & tabunite(i)
End Function
@++
Optitech
8 juin 2002 à 08:50
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.