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

  FORUM HardWare.fr
  Programmation
  C++

  stockage bit à bit ???

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

stockage bit à bit ???

n°1628405
Boulou
Wingfoil
Posté le 22-10-2007 à 09:33:12  profilanswer
 

Hello tout le monde,
 
Je suis plutot débutant en programmation et pour un programme perso je dois sauvegarder (pour relire par la suite) des données dans un fichier en quantité très importante.
Je dois sauvegarder un X fois un vecteur de 800 valeur.
j'utilise pour celà une boucle sur : fichier.write(_valueSolution[i],2);
Celà marche niquel : j'obtiens un fichier de 1600 octet pour 1 vecteur.
 
J'aimerai gagner de la place car si je dois sauvegarder 1 000 000 de fois ce vecteur je vais être à 1.6Go !!
J'ai donc penser écrire bit à bit ce vecteur, mais comme la fonction .write n'accepte que d'écrire au minimum 1 octet celà veut dire que je vais devoir tout manipuler bit à bit...
Pour info les valeurs du vecteur sont de deux "types" : soit elles sont comprises entre 0 et 25, soit entre 0 et 258.
Je pensais donc mettre à la suite, soit des groupes de 5 bits, soit de 9 bits suivant le type de valeur à sauvegarder.
 
Peut etre y a t il d'autres moyen que je ne connais pas.... Qu'en pensez vous ?
 
Merci  :jap:

mood
Publicité
Posté le 22-10-2007 à 09:33:12  profilanswer
 

n°1628418
Elmoricq
Modérateur
Posté le 22-10-2007 à 10:26:45  profilanswer
 

Tu peux tenter les champs de bits :
http://mapage.noos.fr/emdel/notes.htm#bitfield

 

Mais bon, d'autres approches peuvent être envisagées. Par exemple, est-ce que tu as besoin de stocker 1.000.000 de vecteurs, ou peux-tu te contenter de vecteurs "clés" à partir desquels tu peux recalculer les autres ?
Autre "solution" : l'écriture d'un fichier de 1.6Go est-elle réellement rédhibitoire ? Ce n'est peut-être pas choquant selon le contexte. Au pire, tu peux aussi envisager de compresser ton fichier.

Message cité 1 fois
Message édité par Elmoricq le 22-10-2007 à 10:29:51
n°1628443
Boulou
Wingfoil
Posté le 22-10-2007 à 10:52:23  profilanswer
 

Elmoricq a écrit :

Tu peux tenter les champs de bits :  
http://mapage.noos.fr/emdel/notes.htm#bitfield
 
Mais bon, d'autres approches peuvent être envisagées. Par exemple, est-ce que tu as besoin de stocker 1.000.000 de vecteurs, ou peux-tu te contenter de vecteurs "clés" à partir desquels tu peux recalculer les autres ?
Autre "solution" : l'écriture d'un fichier de 1.6Go est-elle réellement rédhibitoire ? Ce n'est peut-être pas choquant selon le contexte. Au pire, tu peux aussi envisager de compresser ton fichier.


 
merci pour ta réponse,
en fait oui j'ai besoin de stoker toutes les valeurs... et j'ai été gentils en disant 1 000 000 car c'est surement plusieurs dizaine/centaine fois 1 million que je vais devoir stoker !
 
j'ai effectivement pensé à la compression, tu me conseilles quoi ? celà prendrait du temps à compresser/décompresser ?

n°1628464
IrmatDen
Posté le 22-10-2007 à 11:25:48  profilanswer
 

Tu ne peux pas diviser en plusieurs fichiers?

n°1628485
Taz
bisounours-codeur
Posté le 22-10-2007 à 11:42:28  profilanswer
 

Je plussoie: je ne vois pas de problème avec la taille du fichier. Un fichier ça se compresse aussi: une compression à la volée avec gzip ça devrait bien le faire.
 
Sinon, change de stratégie: t'as des doublons dans tes vecteurs ? Tu n'a pas moyen de transformer tes vecteurs pour les simplifier / plus de zéro ? (diagonalisation, toussa)

n°1628486
Taz
bisounours-codeur
Posté le 22-10-2007 à 11:42:42  profilanswer
 

IrmatDen a écrit :

Tu ne peux pas diviser en plusieurs fichiers?


Aucun intérêt

n°1628487
Joel F
Real men use unique_ptr
Posté le 22-10-2007 à 11:43:15  profilanswer
 

dans boost::io_streams y a un surcharge de stream qui zip en automatique aussi.

n°1628489
Elmoricq
Modérateur
Posté le 22-10-2007 à 11:44:24  profilanswer
 

Un jour j'arriverai à convaincre ma boîte d'installer boost [:zytrasnif]

n°1628494
Joel F
Real men use unique_ptr
Posté le 22-10-2007 à 11:50:03  profilanswer
 
n°1628683
Boulou
Wingfoil
Posté le 22-10-2007 à 15:53:04  profilanswer
 


:jap: ouaip je vais regarder ca
 
j'ai trouvé ca aussi : http://michael.dipperstein.com/bitlibs/
ca devrait le faire :)


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

  stockage bit à bit ???

 

Sujets relatifs
Format de stockage d'une grosse matriceStockage dans un tableau - help!
[Access] Pilotage scanner et stockage d'image dans Access ?Stockage de date dans un fichier XML
[PHP/MySQL] Stockage de PHP dans une base MySQL[VBA-Excel] questions de débutant
Stockage de donnée dans une appli en JavaStockage d'arbre binaire
Stockage de donnéesSéléction + Stockage
Plus de sujets relatifs à : stockage bit à bit ???


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)