Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1463 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [Visual c++] convertir une taille en Octet automatiquement

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

[Visual c++] convertir une taille en Octet automatiquement

n°691031
th3r1ddl3r
Posté le 02-04-2004 à 16:43:09  profilanswer
 

bonjour,
je cherche une fonction qui existe deja qui peut me convertir une taille donnée en Octet en la taille la plus appropriée (Ko, Mo, Go) un peu comme l'affichage d'explorateur windows.
En gros
je donne 500 en parametre elle me donne 500 Octets
je donne 10240 en paramentre elle me donne 10 Ko
 
Ou bien je cherche l'idée de conversion qui s'approche le plus de l'explorateur windows
 
merci pour vos reponses


Message édité par th3r1ddl3r le 02-04-2004 à 17:07:18
mood
Publicité
Posté le 02-04-2004 à 16:43:09  profilanswer
 

n°691058
gilou
Modérateur
Modzilla
Posté le 02-04-2004 à 17:05:43  profilanswer
 

th3r1ddl3r a écrit :

bonjour,
je cherche une fonction qui existe deja qui peut me convertir une taille donnée en Octet en la taille la plus appropriée (Ko, Mo, Go) un peu comme l'affichage d'explorateur windows.
En gros
je donne 500 en parametre elle me donne 500 Octets
je donne 10240 en paramentre elle me donne 10 Mo
 
Ou bien je cherche l'idée de conversion qui s'approche le plus de l'explorateur windows
 
merci pour vos reponses


Si elle fait ça, il est clair qu'elle est buggée.
A+,

n°691061
th3r1ddl3r
Posté le 02-04-2004 à 17:07:49  profilanswer
 

gilou a écrit :


Si elle fait ça, il est clair qu'elle est buggée.
A+,


a bon et pourquoi ca?

n°691065
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 02-04-2004 à 17:09:12  profilanswer
 

th3r1ddl3r a écrit :


a bon et pourquoi ca?


parce que 10 Mo == 10 485 Ko :o


---------------
J'ai un string dans l'array (Paris Hilton)
n°691067
schnapsman​n
Zaford Beeblefect
Posté le 02-04-2004 à 17:13:06  profilanswer
 

Harkonnen a écrit :


parce que 10 Mo == 10 485 Ko :o


 :non: 1Mo=1077Ko, mais attention 1Ko=1069o :)


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°691069
th3r1ddl3r
Posté le 02-04-2004 à 17:13:50  profilanswer
 

Harkonnen a écrit :


parce que 10 Mo == 10 485 Ko :o


chez moi 10 Mo == 10 240 Ko
et 10 Ko == 10 240 Octets
peut etre qu'on parle pas la meme langue?

n°691073
schnapsman​n
Zaford Beeblefect
Posté le 02-04-2004 à 17:17:23  profilanswer
 

th3r1ddl3r a écrit :


chez moi 10 Mo == 10 240 Ko
et 10 Ko == 10 240 Octets
peut etre qu'on parle pas la meme langue?


 
t'as tout compris, le reste c'est du flan :o


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°691078
th3r1ddl3r
Posté le 02-04-2004 à 17:19:54  profilanswer
 

schnapsmann a écrit :


 
t'as tout compris, le reste c'est du flan :o  


bon en gros a part floodez vous etes un peu inutile car vous pouvez pas repondre a ma question.......

n°691082
gilou
Modérateur
Modzilla
Posté le 02-04-2004 à 17:21:27  profilanswer
 

th3r1ddl3r a écrit :


a bon et pourquoi ca?


Ben par ce qui si 500 ca te donne 500 Octets, alors 10240 ca doit te donner (avec l'arrondissement souhaite) 10 Ko et pas 10 Mo...
A+,

n°691085
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 02-04-2004 à 17:22:20  profilanswer
 

th3r1ddl3r a écrit :


bon en gros a part floodez vous etes un peu inutile car vous pouvez pas repondre a ma question.......


[:kiki]
500 => 500 octets
10240 => 10 Mo
 
Si pour toi 10240 octets = 10 Mo alors c'est que t'as pas tout bien pigé :D
 
EDIT : grillaid par gilou [:sisicaivrai]


Message édité par Taiche le 02-04-2004 à 17:22:35

---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
mood
Publicité
Posté le 02-04-2004 à 17:22:20  profilanswer
 

n°691086
th3r1ddl3r
Posté le 02-04-2004 à 17:22:42  profilanswer
 

gilou a écrit :


Ben par ce qui si 500 ca te donne 500 Octets, alors 10240 ca doit te donner (avec l'arrondissement souhaite) 10 Ko et pas 10 Mo...
A+,
 


serieux t lourd relis mon post

n°691091
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 02-04-2004 à 17:24:13  profilanswer
 

th3r1ddl3r a écrit :


serieux t lourd relis mon post


Citation :

--Message édité par th3r1ddl3r le 02-04-2004 à 17:07:18--


Genre [:kiki]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°691093
gilou
Modérateur
Modzilla
Posté le 02-04-2004 à 17:25:06  profilanswer
 

th3r1ddl3r a écrit :


serieux t lourd relis mon post

Ben t'as peut etre edité ton post, mais ca laisse des traces...
Et je viens juste de repondre a ta question, car j'etais parti ailleurs.
A+,

n°691098
th3r1ddl3r
Posté le 02-04-2004 à 17:26:15  profilanswer
 

Taiche a écrit :


Citation :

--Message édité par th3r1ddl3r le 02-04-2004 à 17:07:18--


Genre [:kiki]


 
ca t'arrive jamais de faire une faute de frappe.. elle a été corrigée 1 post après... alors faites un peu un effort..

n°691103
gilou
Modérateur
Modzilla
Posté le 02-04-2004 à 17:30:07  profilanswer
 

th3r1ddl3r a écrit :


 
ca t'arrive jamais de faire une faute de frappe.. elle a été corrigée 1 post après... alors faites un peu un effort..


Peut etre, mais il y avait un post entre deux, le mien. Alors si tu demandes pourquoi dans ton post d'apres, alors que j'avais mis l'erreur en rouge, et qu'en plus, selon tes dires, c'etait corrigé, alors tu es soit malcomprenant, soit daltonien.
A+,

n°691105
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 02-04-2004 à 17:30:34  profilanswer
 

th3r1ddl3r a écrit :


ca t'arrive jamais de faire une faute de frappe.. elle a été corrigée 1 post après... alors faites un peu un effort..


C'était trop dur de dire à gilou "ah OK, j'avais fait une erreur, j'ai édité" ? Au lieu de ça, tu laisses la confusion s'installer sur 10 posts et tu t'en plains.
Pis à ton avis, c'est à qui de faire des efforts ?


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°691130
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 02-04-2004 à 17:54:35  profilanswer
 

Bon, on va pas polémiquer 107 ans !
auteur du topic dont j'ai pas envie de déchiffrer le pseudo >> ta fonction est toute con !  
- tu prends la taille en octets
- si elle est <= 1024, alors tu l'affiches telle quelle
- sinon si elle est > 1024 et <= 1024 * 1024, alors tu la divises par 1024 et tu affiches le résultat
- etc...
 
ça prend 10 secondes à faire


---------------
J'ai un string dans l'array (Paris Hilton)
n°691234
gilou
Modérateur
Modzilla
Posté le 02-04-2004 à 18:53:54  profilanswer
 

Arf! En plus l'auteur du topic en demande la moderation, apparement sans avoir vu que j'etais modo ici...
Je sens que je vais lui decerner le titre (oh combien convoité) de boolaÿ du mois.
A+,
PS. En plus, comme dirait TAZ, ca fout quoi a la section C++ :whistle:


Message édité par gilou le 02-04-2004 à 18:55:17
n°691236
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 02-04-2004 à 18:55:02  profilanswer
 

gilou a écrit :

Arf! En plus l'auteur du topic en demande la moderation, apparement sans avoir vu que j'etais modo ici...
Je sens que je vais lui decerner le titre (oh combien convoité) de boolaÿ du mois.
A+,


Il le mérite, il en a ouvert un autre avec le même énoncé (corrigé bien sur) [:ddr555]


---------------
J'ai un string dans l'array (Paris Hilton)
n°691237
gilou
Modérateur
Modzilla
Posté le 02-04-2004 à 18:56:04  profilanswer
 

Harkonnen a écrit :


Il le mérite, il en a ouvert un autre avec le même énoncé (corrigé bien sur) [:ddr555]

Rhooo poutaing! [:rofl] [:rofl] [:rofl]
A+,

n°904962
Le Veilleu​r
Posté le 22-11-2004 à 20:54:19  profilanswer
 

Harkonnen a écrit :

Bon, on va pas polémiquer 107 ans !
auteur du topic dont j'ai pas envie de déchiffrer le pseudo >> ta fonction est toute con !  
- tu prends la taille en octets
- si elle est <= 1024, alors tu l'affiches telle quelle
- sinon si elle est > 1024 et <= 1024 * 1024, alors tu la divises par 1024 et tu affiches le résultat
- etc...
 
ça prend 10 secondes à faire


 
Mais il y a probleme la dedans, non ?
 

Code :
  1. AnsiString TForm1::convert(unsigned a)
  2. {
  3. unsigned e,d;
  4. AnsiString tmp="";
  5. if(a <= 1024)
  6.     tmp= a + " octets" ;
  7. else
  8.    { if( a > 1024 && a <= 1024*1024)
  9.       {
  10.        e = a /1024; d = a%1024;
  11.        tmp= e; tmp+= "," ;tmp+= d; tmp+= " Ko" ;
  12.       }
  13.      else
  14.       {
  15.         if( a > 1024*1024 && a <= 1024*1024*1024)
  16.           {
  17.            e = a /(1024*1024); d = a%(1024*1024);
  18.            tmp= e;tmp+= "," ;tmp+= d ;tmp+= " Mo" ;
  19.           }
  20.         else
  21.           {
  22.            e = a /(1024*1024*1024); d = a%(1024*1024*1024);
  23.            tmp= e;tmp+= "," ;tmp+= d;tmp+= " Go" ;
  24.           }
  25.       }
  26.     }
  27.   return  tmp;
  28. }


 
C'est vraiment codé n'importe comment :p


---------------
Mon Blog : LeVeilleur.net | Hébergement d'images : Hostipics.net
n°904964
Taz
bisounours-codeur
Posté le 22-11-2004 à 20:55:22  profilanswer
 

gnome_vfs_format_file_size_for_display

n°904974
Le Veilleu​r
Posté le 22-11-2004 à 21:10:22  profilanswer
 

Taz a écrit :

gnome_vfs_format_file_size_for_display


tjs fidèle à toi même....


---------------
Mon Blog : LeVeilleur.net | Hébergement d'images : Hostipics.net
n°904976
Taz
bisounours-codeur
Posté le 22-11-2004 à 21:12:28  profilanswer
 

je sais pas moi, y a tous les kadors là et vous bataillez sur l'algo ...
 
je vous montre juste un exemple de solution simple (et avec i18n ;)


Message édité par Taz le 22-11-2004 à 21:12:59
n°905035
printf
Baston !
Posté le 22-11-2004 à 22:01:14  profilanswer
 

1 ko = 1000 octets bande de nazes :o


---------------
Un matin je me lèverai et il fera beau.
n°905395
blackgodde​ss
vive le troll !
Posté le 23-11-2004 à 12:27:32  profilanswer
 

1ko = 1024 octets ...


---------------
-( BlackGoddess )-
n°905396
Lam's
Profil: bas.
Posté le 23-11-2004 à 12:28:32  profilanswer
 

BlackGoddess a écrit :

1ko = 1024 octets ...


Pas depuis 1998. C'est un kibioctet qui fait 1024 octets.

n°905399
blackgodde​ss
vive le troll !
Posté le 23-11-2004 à 12:29:56  profilanswer
 

ah ??? je n'étais pas au courant ... bizarre pourtant windows 2000 par exemple (sorti apres 1998 je crois) n'est pas au courant non plus
 
edit : plus d'infos :
http://forum.hardware.fr/hardwaref [...] 7363-1.htm


Message édité par blackgoddess le 23-11-2004 à 12:32:46

---------------
-( BlackGoddess )-
n°905401
Le Veilleu​r
Posté le 23-11-2004 à 12:33:51  profilanswer
 

Code :
  1. AnsiString TForm1::convert(unsigned a)
  2. {
  3. unsigned e,d;
  4. unsigned taille = 1000;
  5. AnsiString tmp="";
  6. if(a <= taille)
  7.     tmp= a + " octets" ;
  8. else
  9.    { if( a > taille && a <= taille*taille)
  10.       {
  11.        e = a /taille; d = a%taille;
  12.        tmp= e; tmp+= "," ;tmp+= d; tmp+= " Ko" ;
  13.       }
  14.      else
  15.       {
  16.         if( a > taille*taille && a <= taille*taille*taille)
  17.           {
  18.            e = a /(taille*taille); d = (a%(taille*taille))/taille;
  19.            tmp= e;tmp+= "," ;tmp+= d ;tmp+= " Mo" ;
  20.           }
  21.         else
  22.           {
  23.            e = a /(taille*taille*taille); d =(a%(taille*taille*taille))/(taille*taille);
  24.            tmp= e;tmp+= "," ;tmp+= d;tmp+= " Go" ;
  25.           }
  26.       }
  27.     }
  28.   return  tmp;
  29. }


 
j'ai l'impression que au dessus de 4Go ca part totalement en vrille :(


---------------
Mon Blog : LeVeilleur.net | Hébergement d'images : Hostipics.net
n°905402
Lam's
Profil: bas.
Posté le 23-11-2004 à 12:36:10  profilanswer
 

BlackGoddess a écrit :

ah ??? je n'étais pas au courant ... bizarre pourtant windows 2000 par exemple (sorti apres 1998 je crois) n'est pas au courant non plus


Je sais, c'est pas clair cette histoire. C'est comme "au temps pour moi": tout le monde n'est pas encore au courant que ça fait 200 ans que c'est comme ça. :D
 
Bon, d'une part, va voir là:
http://forum.hardware.fr/hardwaref [...] 7363-1.htm
 
D'autre part, depuis 2-3 ans, tous les disques durs ou presque, ainsi que les clés USB utilisent cette capacité. C'est chiant, mais c'est comme ça. 200Mo veut dire 200 000 000 octets sur le disque.  
 
Windows n'est évidemment pas mis à jour parce que ça représente un gros changement. Pense seulement aux cris de rebellion qui sont apparus lorsque Windows 95 a été standardisé pour utiliser les mots "folders/dossiers" au lieu de "directory/répertoire". Alors imagine le choc lorsqu'il sera modifié pour utiliser des kio et de kiB.
 
Enfin, il n'y a effectivement aucune raison pour qu'un vieil usage désuet de nerds force un préfixe SI à avoir une valeur différente juste pour les bits et les bools.

n°905404
blackgodde​ss
vive le troll !
Posté le 23-11-2004 à 12:38:41  profilanswer
 

mmh ... pk tu réutilises pas a a chaque fois ? ca simplifierait les tests
 
si a<=1024 alors
   c bon
sinon
   a /= 1024
   si a<=1024 alors
...


---------------
-( BlackGoddess )-
n°905407
Le Veilleu​r
Posté le 23-11-2004 à 12:41:37  profilanswer
 

BlackGoddess a écrit :

mmh ... pk tu réutilises pas a a chaque fois ? ca simplifierait les tests
 
si a<=1024 alors
   c bon
sinon
   a /= 1024
   si a<=1024 alors
...


Oui ca serait plus propre ;) là je recois donc la taille en octets, et je me demande si avec un disque de par exemple 30Go ( 30 000 000 000 octets alors +???) je ne dépasserais pas la capaticité du unsigned.


---------------
Mon Blog : LeVeilleur.net | Hébergement d'images : Hostipics.net
n°905408
blackgodde​ss
vive le troll !
Posté le 23-11-2004 à 12:43:30  profilanswer
 

vi, pour les nombres supérieurs à 4go, l'unsigned tu oublies
 
c par exemple pour ca que c'est la limite de taille d'un fichier sur certains os


---------------
-( BlackGoddess )-
n°905410
Le Veilleu​r
Posté le 23-11-2004 à 12:46:19  profilanswer
 

BlackGoddess a écrit :

vi, pour les nombres supérieurs à 4go, l'unsigned tu oublies
 
c par exemple pour ca que c'est la limite de taille d'un fichier sur certains os


Ah ok, merci, par exemple avec cette methode je souhaiterais afficher la taille d'un disque dur, j'ai donc cette taille en octets, qu'est ce que je peux utiliser a la place des unsigned. Si je ne fais pas d'erreur, les unsigned long int vont jusque 4 294 967 295. Ce qui est encore trop juste pour la taille d'un disque dur :(


Message édité par Le Veilleur le 23-11-2004 à 12:46:50

---------------
Mon Blog : LeVeilleur.net | Hébergement d'images : Hostipics.net
n°905413
masklinn
í dag viðrar vel til loftárása
Posté le 23-11-2004 à 12:47:26  profilanswer
 

Lam's a écrit :

Enfin, il n'y a effectivement aucune raison pour qu'un vieil usage désuet de nerds force un préfixe SI à avoir une valeur différente juste pour les bits et les bools.


J'ai toujours trouvé ca stupide, les SI c'est de la base 10, son kilo = 10^3 ca a un sens
 
quand on part sur des bases 2 (le bit) ou 256 (l'octet) ca n'a plus aucun sens [:spamafote]  
(sans même parler de "kibibit", ignoble à l'oreille)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°905414
blackgodde​ss
vive le troll !
Posté le 23-11-2004 à 12:47:47  profilanswer
 

bin un unsigned long long ou un unesigned __int64 suivant ton compilo


---------------
-( BlackGoddess )-
n°905417
Le Veilleu​r
Posté le 23-11-2004 à 12:54:12  profilanswer
 

BlackGoddess a écrit :

bin un unsigned long long ou un unesigned __int64 suivant ton compilo


Citation :

Il est à noter que les types long long et unsigned long long ne font pas partie de C++ ni de C90. Ce sont des inventions de C99.


 
http://www.cmla.ens-cachan.fr/Util [...] s/C++/FAQ/
 
Borland C++ builder, me dit que j'ai mis un long en trop


---------------
Mon Blog : LeVeilleur.net | Hébergement d'images : Hostipics.net
n°905421
el muchach​o
Comfortably Numb
Posté le 23-11-2004 à 12:56:11  profilanswer
 

Il te reste les unsigned long long. Mais de toute façon, il faut virer les (taille * taille) et les (taille * taille * taille) si tu veux éviter les overflows.

n°905425
Le Veilleu​r
Posté le 23-11-2004 à 12:57:13  profilanswer
 

el muchacho a écrit :

Il te reste les unsigned long long. Mais de toute façon, il faut virer les (taille * taille) et les (taille * taille * taille) si tu veux éviter les overflows.


Avec des unsigned __int64 cela fonctionne


---------------
Mon Blog : LeVeilleur.net | Hébergement d'images : Hostipics.net
n°905428
el muchach​o
Comfortably Numb
Posté le 23-11-2004 à 12:59:22  profilanswer
 

Non, si tu as une taille qui est >= 2^32, taille*taille dépasse 2^64-1.


Message édité par el muchacho le 23-11-2004 à 12:59:43
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [Visual c++] convertir une taille en Octet automatiquement

 

Sujets relatifs
Ajouter automatiquement un icq dans le logiciel[PHP] convertir une chaîne en nombre
Faire un graphique de grande taille (> a la resolution de l'ecran)Taille de boutons simple et feuille de style
[PHP] convertir date fr type 27/02/2001 en timestamp unix correctImporter fichier access sous visual BAsic
IIS, ASP.NET , Visual Studio .NET, XML , et codage UTF-8 (ouf!)Définir la taille d'un document HTML
determiner la taille d'un fichier [résolu][VB] Convertir une couleur Hexa en Couleur Long 16bits
Plus de sujets relatifs à : [Visual c++] convertir une taille en Octet automatiquement


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR