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 :

lecture d'un fichier , uniquement les ajouts.


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 412
    Par défaut lecture d'un fichier , uniquement les ajouts.
    bonjours,

    je code sous linux.
    Je cherche à lire un fichier en permanence, si celui-ci est modifier, l'api inotify, me donne l'information,
    Je sais lire un fichier ligne par ligne.

    Mai par contre si le fichier reçois des nouvelles données. comment ne lire que les nouveaux ajouts?

    1.- je peux éventuellement compter le nombre de ligne puis la fois ou suivante reprendre la ou le nombre de ligne était,

    mai bon relire le fichier complet à chaque fois c'est pas génial... si le fichier est petit sa va on rigole, mai sinon bonjour les ressources ...
    si quelqu'un à une piste je suis preneur ?

    Merci d'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par défaut
    Salut,

    pourquoi ne pas l'ouvrir une première fois, vérifier sa taille, puis se remettre à cette position quand tu sais qu'il a changé ?
    Tu fais gaffe si sa nouvelle taille est plus petite, c'est que du contenu a été supprimé, sinon tu peux lire du nouveau contenu.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2013
    Messages : 610
    Billets dans le blog
    21
    Par défaut
    Tel que tu décris le problème, la seule modification possible est l'ajout d'une ou plusieurs lignes. Donc en effet, en utilisant les fonctions du fstream avec lequel tu ouvres le fichier, tu peux savoir quel est la position du dernier caractère que tu as lu.

    Par exemple:
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    class UpdatesReader {
     
      std::ifstream is;
      int last_pos;
     
      ...
     
      void read_updates() {
        is.seekg(0, last_pos); // on se place à la dernière position
        ... // lire les nouvelles lignes
        last_pos = is.tellg();
       }
    };

Discussions similaires

  1. Réponses: 6
    Dernier message: 20/07/2007, 15h49
  2. Réponses: 2
    Dernier message: 21/06/2007, 13h13
  3. Sauvegarder uniquement les fichiers modifiés.
    Par debuthmx dans le forum Linux
    Réponses: 1
    Dernier message: 16/04/2007, 23h06
  4. Télécharger uniquement les fichiers HTML
    Par anti-conformiste dans le forum Applications et environnements graphiques
    Réponses: 8
    Dernier message: 01/12/2006, 12h28
  5. Lecture d'un fichier Excel uniquement sur un seul poste
    Par loutsky dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/05/2006, 08h09

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