Petit probleme dans le calcule de taille d'un fichier

Résolu
comtention Messages postés 85 Date d'inscription dimanche 11 avril 2004 Statut Membre Dernière intervention 10 janvier 2010 - 5 août 2005 à 11:25
comtention Messages postés 85 Date d'inscription dimanche 11 avril 2004 Statut Membre Dernière intervention 10 janvier 2010 - 5 août 2005 à 14:11
Bonjour j'ai créer un code hier soir pour calculer la taille d'un fichier en unité plus adéquoite. Sa marche impec mais voilà quand je choisi un fichier dont la taille reste en octets et bien dans le label qui a comme boulot dafficher la taille et l'unite et bien c'est marqué "Ko" sans rien devant, ou alors marqué rien. Je vois pas ma faute, vous savez m'aider?


dim fic2, tailleo, tailleko, taillemo


Private Sub List1_Click()
fic2 = List1.Text 'là je prend l'adresse d'un fichier
tailleo = FileLen(fic2) 'Je calcul la taille en octet
If tailleo > 1024 Then
tailleko = tailleo / 1024
Else
aff_taille.Caption = tailleo & " octets"
End If

If tailleko > 1024 Then
taillemo = tailleko / 1024
aff_taille.Caption = Round(taillemo, 2) & " Mo"
Else
aff_taille.Caption = Round(tailleko, 2) & " Ko"
End If
End Sub

Merci d'avance

4 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
5 août 2005 à 12:17
Select Case taille

Case Is >= 1048576: MsgBox Format$(taille / 1048576, "#0.00 Mo")

Case Is >= 1024: MsgBox Format$(taille / 1024, "#0.00 ko")

Case
Else:
MsgBox taille & " octets"

End Select


Daniel
3
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
5 août 2005 à 11:41
si tailleo < 1024 --> tailleko = 0



comme tu repart toujours de tailleko dans le deuxième test, il reste à zéro

il faut tester les trois cas dans un même test:



Select Case tailleo

case > 1024*1024 - 1:

case > 1024 - 1:

case Else:

End Select




Daniel
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
5 août 2005 à 11:58
Salut
Info en passant pour les calculs.
Selon la manière dont est dimensionné 'tailleo', il se peut que les calculs soient faux.
Utilise cette syntaxe :
Case > 1024! * 1024! -1!
(avec des ! derrière les constantes pour lui dire que c'est du type Long)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
(je
0
comtention Messages postés 85 Date d'inscription dimanche 11 avril 2004 Statut Membre Dernière intervention 10 janvier 2010
5 août 2005 à 14:11
Merci a vous ca marche super!

J'en profite pour faire resortir des questions dont je n'ai pas encore eu de reponses
--> http://www.vbfrance.com/forum.v2.aspx?id=157019
-->http://www.vbfrance.com/forum.v2.aspx?ID=526332
0
Rejoignez-nous