begin process at 2012 02 12 15:33:42
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > API :CONVERTIR DES OCTETS EN KO,MO,GO EN FONCTION DE LA VALEUR

API :CONVERTIR DES OCTETS EN KO,MO,GO EN FONCTION DE LA VALEUR


 Information sur la source

Note :
9,33 / 10 - par 3 personnes
9,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Classé sous :conversion, octet, byte Niveau :Débutant Date de création :18/02/2006 Vu :44 420

Auteur : MasterHack

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note


 Description

A l'aide de l'api win32 StrFormatByteSize, il est possible de convertir des valeur exprimer en octés en kilo mega et gega octes, en fonction de la valeur.Exemple , 1024 -> 1,00 ko,9565656->9.12Mo.

Source

  • Private Declare Function StrFormatByteSize Lib "shlwapi" Alias "StrFormatByteSizeA" (ByVal dw As Long, ByVal pszBuf As String, ByVal cchBuf As Long) As Long
  • Private Sub form_load()
  • Dim mem As String
  • Dim lenmem As Long
  • Const valeur_en_octes As Single = 9565656 'changez la valeur ici
  • mem = Space$(32)'creer un buffer
  • lenmem = Len(mem)
  • If StrFormatByteSize(valeur_en_octes, mem, lenmem) <> 0 Then
  • MsgBox Trim$(mem)
  • End If
  • End Sub
Private Declare Function StrFormatByteSize Lib "shlwapi" Alias "StrFormatByteSizeA" (ByVal dw As Long, ByVal pszBuf As String, ByVal cchBuf As Long) As Long

Private Sub form_load()
Dim mem As String
Dim lenmem As Long
Const valeur_en_octes As Single = 9565656 'changez la valeur ici
    mem = Space$(32)'creer un buffer
    lenmem = Len(mem)
   
   If StrFormatByteSize(valeur_en_octes, mem, lenmem) <> 0 Then
                     
     MsgBox Trim$(mem)
   
   End If
   

End Sub




 Sources du même auteur

URL COURANT SUR INTERNET EXPLORER PAR CONNEXION DDE
Source avec Zip Source avec une capture Source .NET (Dotnet) MASTERLOCATER.NET
Source avec Zip Source avec une capture INFORMATIONS A PARTIR D'UNE ADDRESSE IP (MASTERLOCATER)
Source avec Zip Source avec une capture COOL SYSTEMMENU (OWNER-DRAW)
Source avec Zip Source avec une capture EXPLORATEUR D'OBJETS

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) .NET DEPENDENCY VIEWER : ARBRE DES DÉPENDANCES D'UN ASSEMBLY... par ShareVB
Source avec Zip Source .NET (Dotnet) UTILITAIRE SKYDRIVE par MasterShadows
Source avec Zip ROTATION RAPIDE D'IMAGE par trex70
Source avec Zip Source avec une capture ENUMERATION DES PORTS TCP ET IDENTIFCATION DU PROCESS (PID) ... par Renfield
Source avec Zip Source avec une capture MOUSE SPEED AND WEIGHT : RETOUR DE FORCE VIRTUEL ! par ScSami

 Sources en rapport avec celle ci

Source .NET (Dotnet) CONVERTIR UN OCTET EN 8 BITS (10011101) BYTESTOBITS par yvesyves
Source avec Zip Source avec une capture TRADUCTEUR VB6.VBP EN VB5.VBP par joro
RÉCUPÉRER LA TAILLE D'UN FICHIER À LA FAÇON DE L'EXPLORATEUR... par tcedi
CONVERSION OCTET =&GT; KO, MO, GO ... par processus
CONVERTIR DES OCTETS EN KO,MO, ET GO par vbtom

Commentaires et avis

Commentaire de SkyRocKo le 18/02/2006 16:45:19

Salut MasterHack,

Génial cet API ! Merci

10/10

Commentaire de SkyRocKo le 18/02/2006 22:51:23

J'ai essayé de reproduire cette fonction et voici le même code sans API à la diffèrence près que les valeurs sont arrondies à n décimales près, et non pas tronquées comme avec l'API.

Voici le code:

Public Function StrFormatByteSize(ByVal dw As Long, Optional NumDigitsAfterDecimal As Long = 2) As String
  Dim sValue As String
    Select Case (dw \ 1024)
        Case Is >= 1024000
            sValue = CStr(Round(dw / (1024 ^ 3), NumDigitsAfterDecimal)) & " Go"
        Case Is >= 1000
            sValue = CStr(Round(dw / (1024 ^ 2), NumDigitsAfterDecimal)) & " Mo"
        Case Is >= 1
            sValue = CStr(Round(dw / 1024, NumDigitsAfterDecimal)) & " Ko"
        Case Is = 0
            sValue = CStr(Round(dw)) & " octets"
    End Select
    Let StrFormatByteSize = sValue
End Function

Commentaire de Patrice99 le 19/02/2006 09:07:05

Ben voici ma fonction à moi alors :

Public Function sFormaterTailleOctets$(ByVal lTailleOctets&)

    ' Renvoyer une taille de fichier bien formatée dans une chaîne de caractère

    ' 1024 est la norme actuellement employée dans Windows,
    '  mais 1000 sera peut être un jour la norme
    Dim sAffichage$ = sFormaterNumerique(lTailleOctets) & " octets"
    Dim rNbKo! = CSng(Math.Round(lTailleOctets / 1024, 1))
    If rNbKo > 0 Then sAffichage &= " (" & sFormaterNumerique(rNbKo) & " Ko"
    Dim rNbMo! = CSng(Math.Round(lTailleOctets / (1024 * 1024), 1))
    If rNbMo > 0 Then sAffichage &= " = " & sFormaterNumerique(rNbMo) & " Mo"
    Dim rNbGo! = CSng(Math.Round(lTailleOctets / (1024 * 1024 * 1024), 1))
    If rNbGo > 0 Then sAffichage &= " = " & sFormaterNumerique(rNbGo) & " Go"
    If rNbKo > 0 Or rNbMo > 0 Or rNbGo > 0 Then sAffichage &= ")"
    sFormaterTailleOctets = sAffichage

End Function

Commentaire de Patrice99 le 19/02/2006 09:08:32

et la fonction qui va avec :

Public Function sFormaterNumerique$(ByVal rVal!)

    ' Formater un numérique avec une précision d'une décimale

    ' Le format numérique standard est correct (séparation des milliers et plus),
    '  il suffit juste d'enlever la décimale inutile si 0

    Dim nfi As Globalization.NumberFormatInfo = _
        New Globalization.NumberFormatInfo
    ' Définition des spérateurs numériques
    nfi.NumberGroupSeparator = " "   ' Séparateur des milliers, millions...
    nfi.NumberDecimalSeparator = "." ' Séparateur décimal
    ' 3 groupes pour milliard, million et millier
    ' (on pourrait en ajouter un 4ème pour les To : 1000 Go)
    nfi.NumberGroupSizes = New Integer() {3, 3, 3}
    nfi.NumberDecimalDigits = 1 ' 1 décimale de précision
    sFormaterNumerique = rVal.ToString("n", nfi) ' n : numérique général
    ' Enlever la décimale si 0
    sFormaterNumerique = sFormaterNumerique.Replace(".0", "")

End Function

Commentaire de BZY1 le 19/02/2006 14:04:29

Dans le meme genre tu as GetFileSize (va voir sur allapi.net si tu connais pas, il y a un bon exemple) a+

Commentaire de MasterHack le 19/02/2006 15:06:10

Salut;
GetFileSize dans le cas d'un fichier local, sinon la fonction sujet peut etre utiliser dans des cas tels le telechargement de fichiers distants.
Merci pour vos codes, c'est tres instructif.

Commentaire de MadM@tt le 20/02/2006 01:34:20

Salut, c'est cool ce code je connaissais pas cette api.
Je voulais savoir, 1024 ça a été décidé arbitrairement par windows ??

Commentaire de Maksime le 20/02/2006 11:56:53

--> MadM@tt : c'est lié au fait que tout est en binaire en informatique. Tout est là
http://fr.wikipedia.org/wiki/Octet

Commentaire de MadM@tt le 20/02/2006 12:56:27

Maksime > Oui désolé j'ai pas été clair, je sais que c'est 2^10, ce que je voulais savoir c'est pourquoi après tout, ça aurait pu marcher avec 2^7 ou autre, ou meme 436, mais je voulais savoir si c'était windows qui avait décidé ça ?
Ps : le lien que tu m'a passé n'a pas l'air de marcher

Commentaire de ScSami le 20/02/2006 14:51:26

Windows est un OS et a ce titre il ne décide rien! Mais si ta question est de savoir si Crosoft est pour quelque chose dans le fait qu'on passe des unités à leurs kilos puis leur méga ... je dirais non, évidemment!!! Tu sais, en base dix aussi on peut parler en Kilos ... D'ailleurs, certains commerçants parlent en KE (KiloEuros... anciennement KF). La particularité du 024 est juste du au binaire. Je sais pas ce que ça donnerait en trinaire mais ce ne serait pas non plus "juste" (000) !

Commentaire de MadM@tt le 20/02/2006 17:20:34

lol non c'est toujours pas ce que je voulais dire ^^ tant pis lol

Commentaire de FAS le 24/02/2006 01:26:55

MadM@tt >> C'est 1024, parce que ça s'approche du 1000 du système de notation scientifique standard : théoriquement, on devrait pas dire un kilo-octet pour 1024 octet mais un "kibi-octet". Un kilo-octet valant 1000 octets. Dans la pratique, à part pour les fabricants de disque dur qui peuvent comme ça indiquer des valeurs qui semblent supérieures à ce qu'elles sont en vrai, personne n'utilise la notation "kibi", et tout le monde dit "kilo" pour 1024, même si c'est un peu différent.

Mais tout cela était bien expliqué dans la page donnée par Maksime.

Commentaire de thel0rd le 06/04/2006 15:22:39

cool je connaissais pas du tout cette API, thx j'en ai besoin en plus. merci encore a toi

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Conversion d'un octet hexadécimal en type long [ par Cyrille.fouchet ] Je voudrais savoir comment convertir un octect ayant une valeur hexadécimal en un type long.Merci d'avancecyrille Fouchet Conversion String en Byte[] [ par syndrael ] Bonjour,J'essaie de créer un TcpListener à partir de mon adresse IP ki est .. une String. Et donc j'aimerai convertir cette string en tableau de Byte. conversion string en byte [ par lapolo13 ] Est ce que qqun peut me dire pourquoi ce code ne marche pas : Dim prompt As String Dim promptByte As Byte prompt = "coucou" promptByte Conversion de type [ par bilat0 ] Bonsoir, je cherche la mani&#232;re la plus simple et la plus rapide pour passer d'un type "Byte" &#224; un type "Double"Pourquoi ? parceque j'utilise Conversion String a Byte [ par shadow1779 ] Bonjour, j'essaye de faire un petit programme utilisant les sockets, pour l'envoi je fais ceci afin de convertir un string en byte... mais comment con ???? conversion d'un string vers Byte, Integer ou short [ par JeremyNeReculeraPas ] Salut salut à  tous!!!J'ai un pti problème que je n'arrive pas à résoudre et qui me rapel bien que je ne suis qu'un débutant...lolJ'essaye de faire un conversion string to byte [ par Flewms ] Bonjour à tous, je doit convertir la valeur d'une lettre en octet, pour cela j'ai créer un tableau de 33 octets et je met par exemple dans une Conversion de données (octet ?) [ par C35 ] Bonjour, Je récupère des informations d'une imprimante (snmp). Les valeurs récupérées sont sous le forme d'octet (enfin je pense). Les valeurs à gauc Conversion d'un programme VB6 en Express 2008 [ par guilleto ] Bonjour à toutes et tous, Je pense que ma question va en surprendre plus d'un mais tant pis. Est-il possible d'adapter un programme en VB6 en 2008 d byte to image [ par genesys ] Je voudrai récupérer des images JPG de ma base Access le code que j'ai utilisé : Dim _ByteArr As Byte() = CType(dt_Banks.Rows(_i).Item(1), Byte()) Di


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,153 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales