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 :

conseils sur les Flux


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 136
    Par défaut conseils sur les Flux
    bonjour,

    je voudrais implémenter un traitement sur des données (disons une quantité importante).
    ces données peuvent résider en mémoire centrale et peuvent aussi provenir d'un fichier, ou du réseau.

    je voudrais donc faire une solution générale (quelque soit la source de donnée).

    J'ai pensé à utiliser les flux. Qu'est ce que vous en pensez ?

  2. #2
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 634
    Par défaut
    Salut,

    La question est quelque peu imprécise, mais, si je l'ai correctement comprise:

    Un flux est un flux, et donc, tu pourras passer un istringstream ou un ifstream dans une fonction qui demande un istream, vu qu'ils héritent directement de istream et un ostringstream ou un ofsteam dans une fonction qui demande un ostream vu qu'ils héritent directement de ostream

    Tu pourais donc très bien envisager une classe du genre de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class Maclass
    {
        public:
            Maclass(){}
            ~Maclass(){}
            void Read(std::istream& ist);
            void Write(std::ostream& ost);
    //...
    };
    et l'utiliser sous la forme de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ...
    Maclass obj;
    std::ifstream ifs("fichier.txt");
    obj.Read(ifs);
    std::ostream ofs("fichier.txt");
    obj.Write(ofs);
    //et pareil avec les istringstream et ostringstream
    ...
    Mais:
    • tu ne pourra utiliser que les méthodes des istream/ostream pour ton traitement...
    • il pourrait sembler intéressant de prévoir des méthodes supplementaires du genre de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    void Maclass::ReadFile(const std::string& filename)
    {
        std::ifsteam ifs(filename.c_str());
        if(ifs.isopen())
           Read(ifs);
    }
    void Maclass::WriteFile(const std::string& filename)
    {
        std::ofsteam ofs(filename.c_str());
        if(ofs.isopen())
           Read(ofs);
    }
    Voire envisager que certains flux pourraient nécessiter, de par leur nature propre, un traitement différent...

    Pour ce qui est des données reçues du réseau, il faudra sans doute voir en fonction de la bibliotheque que tu utilises pour transformer la réponse dans le flux correspondant.
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par igorIgor
    bonjour,

    je voudrais implémenter un traitement sur des données (disons une quantité importante).
    ces données peuvent résider en mémoire centrale et peuvent aussi provenir d'un fichier, ou du réseau.

    je voudrais donc faire une solution générale (quelque soit la source de donnée).

    J'ai pensé à utiliser les flux. Qu'est ce que vous en pensez ?
    Avec les informations donnees, c'est une approche possible. Les templates sont une alternative. Tout depend du traitement a faire et de details que tu ne donnes pas.

Discussions similaires

  1. Réponses: 7
    Dernier message: 17/02/2007, 09h22
  2. recherche aide et conseils sur les tables
    Par jj77 dans le forum Langage
    Réponses: 1
    Dernier message: 10/01/2007, 23h24
  3. [RSS] Questions diverses sur les flux RSS (Google et phpBB)
    Par leserapheen dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 06/10/2006, 14h35
  4. conseil sur les vue systeme db2
    Par donny dans le forum DB2
    Réponses: 9
    Dernier message: 25/08/2006, 21h16
  5. [Sécurité] conseil sur les variables de session
    Par grinder59 dans le forum Langage
    Réponses: 1
    Dernier message: 26/01/2006, 21h05

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