IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

[template] ecrire dans un fichier texte le type de données, puis le relire


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut [template] ecrire dans un fichier texte le type de données, puis le relire
    Bonjour à tous !

    J'ai créer une classe Camera, qui commence à devenir complexe.
    Pour des besoins de physique pure, j'ai dû la recoder en template afin de prendre en compte différent type de pixel possible : float, double, unsigned char, etc...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    template <typename T>
    class Camera
    {
    public:
    	typedef typename T			value_type;
    	typedef typename vigra::BasicImage<T>	image_type;
     
    	Camera(Choc &c, std::string nom_camera);
    	virtual ~Camera(void);
     
    	image_type getImage(const float & temps_image); // Fonction principale : appel standard
    	image_type getImage(const int & numero_image); 
     
            void genererFilm(int image_debut, int image_fin, std::string nom_fichier, boost::function<void (image_type & )> fonct);
    	void genererFilm(float temps_debut, float temps_fin, std::string nom_fichier, boost::function<void (image_type & )> fonct);
     
    private:
         // du code....
     
    };
    Dans la fonction genererFilm(), je génère un fichier binaire (car plus rapide) comprenant toutes les images de mon film mis bout à bout, ainsi qu'un petit fichier à côté comprenant les données du film : nombre d'images, hauteur et largeur du film...

    Le problème est le suivant : Maintenant que je suis en template, comment écrire dans ce petit fichier la donnée T modèle, afin de pouvoir relire ensuite la fichier en mode binaire correctement...
    Comment distinguer float et double?
    Comment distinguer double et long int ?
    J'avais pensé à écrire en chaine de caractère le nom, mais c'est pas très portable...

    Pour info, mon ancienne fonction de lecture (unsigned short) est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void Camera_Virtuelle::importImage(int numero_image)
    {
    	std::ifstream fichier(m_nom_film.c_str(), std::ios_base::in | std::ios_base::binary);
     
    	std::vector<unsigned short> vect(m_taille_image);
    	fichier.seekg(numero_image * m_taille_image * sizeof(unsigned short), std::ios_base::beg);
    	fichier.read(reinterpret_cast<char*>(&vect[0]), m_taille_image * sizeof(unsigned short));
     
    	m_image = vigra::UInt16Image(m_image_width, m_image_height ,&vect[0]);
    }
    qui marche très bien tant qu'on connait le format...

    Si vous pensez à une astuce propre, je vous en serais très reconnaissant !


  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    a part mettre une entête à ton fichier je ne vois pas

  3. #3
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Bah oui, j'en suis là aussi pour l'instant...
    Mais bon, je me disais peut être qu'il y avait un truc que je connaissais pas! Jusqu'à présent, on m'a toujours sortit un truc super de derrière les fagots, donc...

    Merci quand même Mongaulois !

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    ou dans le nom du fichier

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 124
    Par défaut
    et dans un répertoire tampon?

  6. #6
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Citation Envoyé par craryb Voir le message
    et dans un répertoire tampon?
    C'est à dire?
    Je veux pouvoir ouvrir mon film quelques jours plus tard dans une autre exécution.

Discussions similaires

  1. lire/ecrire dans un fichier texte
    Par mello dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 13/06/2006, 12h35
  2. [VB.net]ecrire dans un fichier text
    Par grand_prophete dans le forum Windows Forms
    Réponses: 12
    Dernier message: 04/05/2006, 16h37
  3. Réponses: 6
    Dernier message: 17/12/2005, 19h27
  4. [VB.NET] Ecrire dans un fichier texte...
    Par robert.michel9 dans le forum VB.NET
    Réponses: 5
    Dernier message: 04/12/2005, 14h35
  5. Ecrire dans un fichier text en MFC
    Par soufienne dans le forum MFC
    Réponses: 6
    Dernier message: 05/10/2005, 16h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo