convertir une taille en Octet automatiquement [Visual c++] - C++ - Programmation
Marsh Posté le 02-04-2004 à 17:05:43
th3r1ddl3r a écrit : bonjour, |
Si elle fait ça, il est clair qu'elle est buggée.
A+,
Marsh Posté le 02-04-2004 à 17:07:49
ReplyMarsh Posté le 02-04-2004 à 17:09:12
th3r1ddl3r a écrit : |
parce que 10 Mo == 10 485 Ko
Marsh Posté le 02-04-2004 à 17:13:06
Harkonnen a écrit : |
1Mo=1077Ko, mais attention 1Ko=1069o
Marsh Posté le 02-04-2004 à 17:13:50
Harkonnen a écrit : |
chez moi 10 Mo == 10 240 Ko
et 10 Ko == 10 240 Octets
peut etre qu'on parle pas la meme langue?
Marsh Posté le 02-04-2004 à 17:17:23
th3r1ddl3r a écrit : |
t'as tout compris, le reste c'est du flan
Marsh Posté le 02-04-2004 à 17:19:54
schnapsmann a écrit : |
bon en gros a part floodez vous etes un peu inutile car vous pouvez pas repondre a ma question.......
Marsh Posté le 02-04-2004 à 17:21:27
th3r1ddl3r 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+,
Marsh Posté le 02-04-2004 à 17:22:20
th3r1ddl3r a écrit : |
500 => 500 octets
10240 => 10 Mo
Si pour toi 10240 octets = 10 Mo alors c'est que t'as pas tout bien pigé
EDIT : grillaid par gilou
Marsh Posté le 02-04-2004 à 17:22:42
gilou a écrit : |
serieux t lourd relis mon post
Marsh Posté le 02-04-2004 à 17:24:13
th3r1ddl3r a écrit : |
Citation : --Message édité par th3r1ddl3r le 02-04-2004 à 17:07:18-- |
Genre
Marsh Posté le 02-04-2004 à 17:25:06
th3r1ddl3r a écrit : |
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+,
Marsh Posté le 02-04-2004 à 17:26:15
Taiche 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..
Marsh Posté le 02-04-2004 à 17:30:07
th3r1ddl3r a écrit : |
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+,
Marsh Posté le 02-04-2004 à 17:30:34
th3r1ddl3r a écrit : |
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 ?
Marsh Posté le 02-04-2004 à 17:54:35
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
Marsh Posté le 02-04-2004 à 18:53:54
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++
Marsh Posté le 02-04-2004 à 18:55:02
gilou a écrit : Arf! En plus l'auteur du topic en demande la moderation, apparement sans avoir vu que j'etais modo ici... |
Il le mérite, il en a ouvert un autre avec le même énoncé (corrigé bien sur)
Marsh Posté le 02-04-2004 à 18:56:04
Harkonnen a écrit : |
Rhooo poutaing!
A+,
Marsh Posté le 22-11-2004 à 20:54:19
Harkonnen a écrit : Bon, on va pas polémiquer 107 ans ! |
Mais il y a probleme la dedans, non ?
Code :
|
C'est vraiment codé n'importe comment
Marsh Posté le 22-11-2004 à 21:10:22
Taz a écrit : gnome_vfs_format_file_size_for_display |
tjs fidèle à toi même....
Marsh Posté le 22-11-2004 à 21:12:28
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
Marsh Posté le 22-11-2004 à 22:01:14
1 ko = 1000 octets bande de nazes
Marsh Posté le 23-11-2004 à 12:28:32
BlackGoddess a écrit : 1ko = 1024 octets ... |
Pas depuis 1998. C'est un kibioctet qui fait 1024 octets.
Marsh Posté le 23-11-2004 à 12:29:56
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
Marsh Posté le 23-11-2004 à 12:33:51
Code :
|
j'ai l'impression que au dessus de 4Go ca part totalement en vrille
Marsh Posté le 23-11-2004 à 12:36:10
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.
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.
Marsh Posté le 23-11-2004 à 12:38:41
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
...
Marsh Posté le 23-11-2004 à 12:41:37
BlackGoddess a écrit : mmh ... pk tu réutilises pas a a chaque fois ? ca simplifierait les tests |
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.
Marsh Posté le 23-11-2004 à 12:43:30
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
Marsh Posté le 23-11-2004 à 12:46:19
BlackGoddess a écrit : vi, pour les nombres supérieurs à 4go, l'unsigned tu oublies |
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
Marsh Posté le 23-11-2004 à 12:47:26
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
(sans même parler de "kibibit", ignoble à l'oreille)
Marsh Posté le 23-11-2004 à 12:47:47
bin un unsigned long long ou un unesigned __int64 suivant ton compilo
Marsh Posté le 23-11-2004 à 12:54:12
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
Marsh Posté le 23-11-2004 à 12:56:11
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.
Marsh Posté le 23-11-2004 à 12:57:13
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
Marsh Posté le 23-11-2004 à 12:59:22
Non, si tu as une taille qui est >= 2^32, taille*taille dépasse 2^64-1.
Marsh Posté le 02-04-2004 à 16:43:09
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