Les Snippets

Connexion

Conversion unités/octets

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 30/07/2006 05:40:33 et initié par PCPT [Liste]
Date de mise à jour : 30/07/2006 05:51:42
Vue : 13346
Catégorie(s) : Trucs & Astuces
Langages dispo pour ce code :
- VB6, VBA
- Assembleur x86



Langage : VB6 , VBA
Date ajout : 30/07/2006
Posté par PCPT [Liste]
Function O2T(ByVal Value As DoubleOptional ByVal ValueType As Byte = 0, Optional ByVal ValueFinal As Byte = 2) As Double 
    O2T = Value * 1024 ^ (CInt(ValueType) - ValueFinal) 
End Function 

' Un petit exemple
Sub Command1_Click() 
    'Convertion de la taille d'un fichier : Octet -> Mega-Octet
    MsgBox O2T(FileLen("C:\Fichier.txt"), 1, 2) 
    MsgBox O2T(1024, 0, 1)  'Retourne 1
End Sub
Remarque :
code posté par 'Coke Hax', transféré de CodeS-SourceS

' Voici le tableau :
'Nom      |o | Ko | Mo | Go | To | Po | Eo | Zo | Yo
'      |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
'Position |0 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08

' Voici la formule :
' Unite * 1024^(position_Unite - position_finale) = Unite_converti

' Exemple :
' Mo -> Go
' 1024 (Mo) * 1024^(2-3) = 1
Langage : Assembleur x86
Date ajout : 31/07/2006
Posté par _dune2_ [Liste]
;// Tableau repris de 'Coke Hax':
 ;//Nom      |o | Ko | Mo | Go | To | Po | Eo | Zo | Yo
 ;//         |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
 ;//Position |0 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08
 
 .section .data
 pos_depart:    .long 1;                     // position d'unité de départ
 pos_finale:      .long 3;                     // position d'unité final
 valeur:            .long 1024*1024*25; // valeur à convertir
 
 .section .text
 unit:
     mov pos_depart,%ecx;    // charge position finale dans ECX
     sub    pos_finale,%ecx;   // calcul la différence d'exposant (depart-finale) dans ECX
     mov    $10,%eax;            // ajustement en produits de *2^10 (*1024)
     mul    %ecx;                    // -> *2^10
     mov %eax,%ecx;            // on remet le resultat dans ECX pour faire des décalages de bits
     cmp $0,%ecx;                 // le resultat de mul et de mov ne permettent pas tester SF.
     jl    diviser;                      // si c'est négatif, il faut diviser par un multiple de 2
 multiplier:                            // si c'est positif, il faut multplier par un multiple de 2
     sall %cl,valeur;               // on multiplie EDX par 2^CL (CL=LSB de ECX ce qui largement suffisant)
     jmp    fin;                        // on saute la division
 diviser:                               //
     neg  %ecx;                    // on ramene ECX positif
     sarl %cl,valeur;              // on divise EDX par 2^CL (CL=LSB de ECX ce qui largement suffisant)
 fin:                                    // Fin du programme, EDX contient le résultat ...
 

Remarque :
Les indexes d'unités sont repris du tableau de 'Coke Hax' pour conserver l'esprit.
L'utilisation d'indexes en multiple de 10 simplifierai grandement le code puisque la multiplication disparaitrait (suppression de "mov $10,%eax;" jusqu'à "cmp $0,%ecx;" inclus).

Snippets en rapport avec : Taille, Conversion, Octets



Codes sources en rapport avec : Taille, Conversion, Octets

{Visual Basic, VB6, VB.NET, VB 2005} TRADUCTEUR VB6.VBP EN VB5.VBP
Ben oui ! Il y a encore des utilisateurs de VB5. C'est ce qui m'a amené à faire ce petit programm...

{Visual Basic, VB6, VB.NET, VB 2005} TAILLE D'UN LECTEUR OU D'UN REPERTOIRE EN OCTETS
Ces lignes de code permetent de retourner la taille(en octet) d'un lecteur logique,ou d'un répertoir...

{Visual Basic, VB6, VB.NET, VB 2005} EXPORT TABLEAU EXCEL EN BBCODE
Petite source en vba excel permettant d'exporter le tableau Excel en BBcode (tableau basic, seul l'é...

{Javascript / DHTML} TAILLEFONTE
Changer la taille du texte sans recharger la page. Utilisation : Augmenter

{Flash} ADAPTER AUTOMATIQUEMENT LA TAILLE DE POLICE SELON LES DIMENSIONS D'UN CHAMP TEXTE (TEXTFIELD)
Cette fonction permet de créer un champ texte dynamique en renseignant les coordonnées, ainsi que le...

{Visual Basic, VB6, VB.NET, VB 2005} HEXA/ASCII AVEC POSSIBILITÉ DE FICHIER
Salut a tous ! (svp prenez la peine de lire la description jusqu'au bout please!!) voila c'est 1 ma...

{C / C++ / C++.NET} ITOA FAIT MASION: COVERSION ENTIER 32 BIT NON SIGNE VERS CHAINE DE CARACTERE(UNIX/WIN32)
permet la conversion d'un entier non signe 32 bits vers une une chaine de caractère ; la fonction es...

{Python} CONVERTISSEUR DE SECONDES
Un petit programme qui convertit un nombre entier de secondes, fourni au départ, en un nombre d'anné...

{Visual Basic, VB6, VB.NET, VB 2005} GÉNÉRATEUR DE FICHIER
Permet de générer un ou des fichiers de taille variable. A vous de choisir le format : Ko, Mo, Go ...

{Visual Basic, VB6, VB.NET, VB 2005} VBSCRIPT --> CONVERSION DE FICHIER TEXTE EN FICHIER EXCEL PAR LIGNE DE COMMANDE
Ce script, lancé en ligne de commande dos, permet de convertir un fichier texte en fichier excel. ...