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 :

Probleme Lecture fichier log


Sujet :

C++

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 31
    Points : 23
    Points
    23
    Par défaut Probleme Lecture fichier log
    Bonjour,
    je suis entrain de réaliser une application de recherche d'information dans un fichier log j'ai une question concernant cela.

    je veux lire par exemple les 3 premiers champs de la première ligne dans le fichier puis faire un retour a la ligne pour lire les 3 premiers champs de la deuxième ligne et ainsi de suite...
    j'ai fais ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     while( !fichier.eof())
            {
    fichier >> moi >> jou >> an;
     
    getline(fichier,suite1);
    ........
    }
    ça commence bien pour quelque fichiers log mais pour d'autre je trouve des résultat BIZARRE!! , alors que tous les fichiers ont la même forme! et j'ai bien vérifie ça....
    alors je cherche comment lire seulement les 3 premiers champs sans faire "getline()" et je retourne au début de la ligne.
    quelques idées?

  2. #2
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 156
    Points
    3 156
    Par défaut
    Salut

    un peu plus de précisions serait de mise de mise . Quel est le séparateur entre les champs ? Peux tu nous montrer un morceau de log qu'on puisse voir le format ?
    Find me on github

  3. #3
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    1- On ne lit jamais sur eof -> FAQ
    2- il y a des effets de bors à mélanger >> et getline -> http://www.developpez.net/forums/d11...e-ne-lit-rien/

    (3- vim est génial pour manipuler des fichiers de log; c'est un sed+grep interactif qui supporte en plus le surlignage de patterns (plugin mark.vim))
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 31
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par jblecanard Voir le message
    Salut

    un peu plus de précisions serait de mise de mise . Quel est le séparateur entre les champs ? Peux tu nous montrer un morceau de log qu'on puisse voir le format ?
    Voici un extrait du fichier log:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Jul 22 2011 20:39:46 Protected C2OAgt.exe[4204]: CachedClient->CachedClient; Thread[1]; RC<-1>; c2oadmin - ERROR Failed to create a database client for [node2] - Exception - DSERR_SRVR_NOT_FOUND - 4 - line 396 of C:\perforce_c2obuild\C2O_v2.0_dev\DataServer\src\client\ilu_clt.cpp 
    Jul 22 2011 20:39:46 Protected C2OAgt.exe[4204]: CachedClient->ping; Thread[1]; RC<-1>; c2oadmin - WARNING Database Client failing ping.
    Jul 22 2011 20:39:46 Protected C2OAgt.exe[4204]: svcsvr->recoverPendingSvcs; Thread[1]; RC<-1>; c2oadmin - EMERGENCY Server [NTPROCESS] on [node2] Failed to initialize service directories.
    Jul 22 2011 20:39:46 Protected C2OAgt.exe[4204]: ndmgrclt->locateDatabase; Thread[1]; RC<-1>; c2oadmin - SEVERE Failed to connect to node manager on [CentralServer]
    Jul 22 2011 20:39:46 Protected C2OAgt.exe[4204]: CachedClient->CachedClient; Thread[1]; RC<-1>; c2oadmin - ERROR Failed to create a database client for [node2] - Exception - DSERR_SRVR_NOT_FOUND - 4 - line 396 of C:\perforce_c2obuild\C2O_v2.0_dev\DataServer\src\client\ilu_clt.cpp 
    Jul 22 2011 20:39:46 Protected C2OAgt.exe[4204]: CachedClient->ping; Thread[1]; RC<-1>; c2oadmin - WARNING Database Client failing ping.
    Jul 22 2011 20:39:46 Protected C2OAgt.exe[4204]: ndmgrclt->locateDatabase; Thread[1]; RC<-1>; c2oadmin - SEVERE Failed to connect to node manager on [CentralServer]
    Jul 22 2011 20:39:46 Protected C2OAgt.exe[4204]: CachedClient->CachedClient; Thread[1]; RC<-1>; c2oadmin - ERROR Failed to create a database client for [node2] - Exception - DSERR_SRVR_NOT_FOUND - 4 - line 396 of C:\perforce_c2obuild\C2O_v2.0_dev\DataServer\src\client\ilu_clt.cpp
    Je veux extraire que la date exemple: Jul 22 2011 de chaque ligne.

    Citation Envoyé par Luc Hermitte Voir le message
    1- On ne lit jamais sur eof -> FAQ
    2- il y a des effets de bors à mélanger >> et getline -> http://www.developpez.net/forums/d11...e-ne-lit-rien/

    (3- vim est génial pour manipuler des fichiers de log; c'est un sed+grep interactif qui supporte en plus le surlignage de patterns (plugin mark.vim))
    veuillez m'expliquer c'est quoi vim??

  5. #5
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    J'aurais pour ma part tendance pour lire un fichier orienté lignes à commencer par lire une ligne entière, puis à décomposer cette ligne.

    En gros, on lit la ligne avec getline.
    On crée un istringstream, qu'on initialise avec la ligne
    On lit dans le istringstream avec >>
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  6. #6
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    <HS type="le bon outil pour chaque tâche">
    @OP, vim est un éditeur de texte pour développeurs essentiellement.
    Sa prise en main est difficile au début, mais elle finit par être rentabilisée.

    P.ex., pour ne garder que les lignes qui concernent ta date dans le fichier de log, tu aurais tapé: ":v/Jul 22 2011/d_", et seules ces lignes là seraient restées. (":v" comme dans "grep -v" -> facile à retenir).

    C'est parfait pour un développeur qui veut analyser des logs. Pour un utilisateur lambda qui ne connait pas unix, on va plutôt l'orienter vers un clickdrome qui au final sera moins efficace pour l'analyse de logs, et qui risque aussi de demander un développement dédié comme tu es en train de le faire.
    </HS>
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

Discussions similaires

  1. [VB]Probleme lecture fichier text et affichage
    Par clochardevobsy dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 10/03/2006, 08h46
  2. Probleme lecture fichier acces sequentiel
    Par ouar dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 23/09/2005, 13h39
  3. Probleme lecture fichier
    Par CaptainChoc dans le forum C++
    Réponses: 5
    Dernier message: 06/03/2005, 10h40
  4. [LG]probleme lecture fichier
    Par yp036871 dans le forum Langage
    Réponses: 2
    Dernier message: 28/01/2004, 19h22
  5. [LG]Probleme lecture fichier file of ....
    Par John_win dans le forum Langage
    Réponses: 11
    Dernier message: 11/11/2003, 18h53

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