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

  FORUM HardWare.fr
  Programmation
  C++

  Classe de lecture de fichier encodées - Approche Objet

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Classe de lecture de fichier encodées - Approche Objet

n°468603
Joel F
Real men use unique_ptr
Posté le 26-07-2003 à 21:21:50  profilanswer
 

Voila j'ai besoin de lire un format de fichier image depuis des fichiers disques.
 
Le format est le suivant  
 
HEADER GENERAL :
Nombre de frames (N)
Largeur
Hauteur
CRC
Offset de la 1e frame depuis le debut du ficheir
 
ensuite N headers de frames
 
HEADER DE FRAMES
Offset des données de la frame
Offset de la frame suivante
 
ensuite toutes les données des frames encodées en RLE.
 
Ma question est donc :
 
Quelle est la maniére le plus "object compliant" de coder un lecteur/decodeur de ces ficheirs et de permettre d'ajouter/retirer des frames dans ce ficheir ...
 
J'ai toutes mes fonctions de faites mais je n'arrive pas à trouver une implemenrtationobjet bien propre (autre que le gros objets statiques contenants ttes le sofnctions :/)
 
Mercid 'avance

mood
Publicité
Posté le 26-07-2003 à 21:21:50  profilanswer
 

n°468606
Taz
bisounours-codeur
Posté le 26-07-2003 à 21:24:18  profilanswer
 

tout dépend des tes contraintes. est que tu as la possibilité de tout charger en mémoire et de travailler dessus, ou est ce que tu dois tout faire sur disque, auquel cas ton prauvre objet est juste un gros descripteur avec des méthodes en plus...

n°468609
Joel F
Real men use unique_ptr
Posté le 26-07-2003 à 21:27:55  profilanswer
 

les fichiers sont rikiki (< 1Mo) et sont chargés en memoire par fichiers mappé.

n°468612
Taz
bisounours-codeur
Posté le 26-07-2003 à 21:34:16  profilanswer
 

donc t'es quand même du coté du descripteur...
je vois pas ce qu'il y a de crade à manipuler ce genre de chose. pour ma part, j'ai déjà fait ce genre de chose. l'ouverture d'une image avec la création d'un objet remplissez une baterrie de champs, toutes les trames sont en mémoire, et le fichier image refermée. Une sorte de désérialisation en somme, tout décompresser en mémoire pour des manipulations aisées et rapides. Après, des modifications faciles (puisque tout en mémoire). une fonction d'écriture pour déséiraliser et tout remettre en binaire ( j'avais aussi une option au constructeur qui pour demander la mise à jour du fichier original au moment de la destruction). et puis comme une image ça peut etre lourd, des fonctions membre zip/unzip (à base de je sais plus quoi, lzop je crois, fait pour etre tres rapide) pour compresser les trames en mémoire quand on souhaite mettre l'objet de coté par exemple

n°468614
Joel F
Real men use unique_ptr
Posté le 26-07-2003 à 21:36:02  profilanswer
 

ok ... donc une grosse classe
 
MonFichier avec des methodes load, save, get/set frame etc ...
ca ira ?

n°468619
Taz
bisounours-codeur
Posté le 26-07-2003 à 21:40:49  profilanswer
 

oui, sans problème. par contre, quand j'ai conçu ma classe, j'étais pas trop pour une méthode load, je préférais associé un ficheir à une image, donc l'unique constructeur prenez un nom de fichier. mais c'est question de gout. Mes méthodes de zip/unzip étaient vraiment sympas et utiles.

n°468621
Joel F
Real men use unique_ptr
Posté le 26-07-2003 à 21:43:50  profilanswer
 

j'ai pas de methode load non plus, j'ai une serie de classe
qui me permetten d'obtenir un HANDLER sur un fochier quelconque (disque, distant, memoire) à partir d'un ID arbitraire.
 
PAr contre, cette histoire de zip/unzip m'interesse bien ...
des liens, exemples ?

n°468622
Taz
bisounours-codeur
Posté le 26-07-2003 à 21:52:16  profilanswer
 

ben j'avais utilisé lzo pour sa très très grande rapidité http://www.lzop.org/
 
mais j'avais aussi hésité avec une classe QT http://doc.trolltech.com/3.2/qbytearray.html qui semble assez efficace également. à toi de tester mais bon QT, si t'es sous windows...
 
le problème de tout ça c'est la licence aussi. à toi de voir ce que tu fais, mois j'avais été pleinement satisfait

n°468631
Joel F
Real men use unique_ptr
Posté le 26-07-2003 à 22:04:43  profilanswer
 

bah c pour un projet perso en Open Source donc LZO devrait suffire non ?
 

n°468637
Taz
bisounours-codeur
Posté le 26-07-2003 à 22:08:07  profilanswer
 

oui, par contre pour LZO, c'est du C et je me souviens que y avais une méthode init à appeler au démarrage. alors je sais pas si c'est thread_safe. au pire du fais un truc élégant en métant tout dans un singleton synchronisé. mais ça marche du tonnerre, regarde mes benchs
 
tiens, y aussi une version alélgée http://www.oberhumer.com/opensource/lzo/download/


Message édité par Taz le 26-07-2003 à 22:09:37
mood
Publicité
Posté le 26-07-2003 à 22:08:07  profilanswer
 

n°468804
Joel F
Real men use unique_ptr
Posté le 27-07-2003 à 08:35:16  profilanswer
 

C'est du C effectivemnt, mais c threadsafe aussi.
Hmmm un singleton synchronisé ... oui pourquoi pas (encore qu ele terme synchronisé me laisse pantois :?:)


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

  Classe de lecture de fichier encodées - Approche Objet

 

Sujets relatifs
Recuperation des infos d un fichier (-> Propriétés / onglet résumé )[Java] lire un fichier binaire
problème de fichier .htaccess[MySQL] Comment exécuter les commandes contenues dans un fichier ?
[VBA] Lire un fichier au format UnixUpload de fichier
Mettre dans une string le contenu d'un fichier texte qui est en ligne[c++] Lire un fichier <== simple pour vous, moa j'ai du mal lol
Inclure un fichier pdf en php....Probleme avec mon fichier .htaccess
Plus de sujets relatifs à : Classe de lecture de fichier encodées - Approche Objet


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