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

MATLAB Discussion :

Ne garder que certaines colonnes et lignes d'un fichier .log


Sujet :

MATLAB

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 134
    Par défaut Ne garder que certaines colonnes et lignes d'un fichier .log
    Salut a vous.

    Je vous explique mon probleme.

    J'ai un gros paquet de fichiers .log a traiter sous matlab.

    Malheureusement, dans ces fichiers sont melanges des donnees utiles avec d'autres donnees non utiles et pire encore du texte de commentaire.

    Cela me faciliterait enormement la tache de creer un petit programme, ou utiliser une fonction, qui me permettrait au choix de creer un nouveau fichier .log en ne gardant que certaines lignes et colonnes, ou d'importer directement dans des variables de matlab ce qui m'interesse.

    Je precise que quand je parle de ne garder que certaines lignes et colonnes, ce sont celles du fichier .log et pas celles des donnees a l'interieur de ce fichier.

    Merci d'avance pour toutes vos idees !

  2. #2
    Membre éprouvé
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Par défaut
    Salut!

    Premierment peux-tu nous donner dans un archive ou poster directement ici le contenu des fichier .log?

    Sans cela aucune chance de t'aider!

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 134
    Par défaut Ajout des balises
    Bonjour.

    Oui je peux.

    Mes fichiers sont de cette forme:


    #Time px py mx mx Brailledata

    2 32 0 mousePos: 3 3 Data: 0x0 0x0 0x0 0x0 0x0 0x0
    458 32 0 mousePos: 3 3 Data: 0x0 0x0 0x0 0x0 0x0 0x0
    599 32 0 mousePos: 3 3 Data: 0x0 0x0 0x0 0x0 0x0 0x0
    630 32 0 mousePos: 3 3 Data: 0x0 0x0 0x0 0x0 0x0 0x0
    645 32 0 mousePos: 3 3 Data: 0x0 0x0 0x0 0x0 0x0 0x0
    677 32 0 mousePos: 3 3 Data: 0x0 0x0 0x0 0x0 0x0 0x0
    692 32 1 mousePos: 3 3 Data: 0x0 0x0 0x0 0x0 0x0 0x0
    724 32 1 mousePos: 3 3 Data: 0x0 0x0 0x0 0x0 0x0 0x0
    755 32 1 mousePos: 3 3 Data: 0x0 0x0 0x0 0x0 0x0 0x0
    770 32 1 mousePos: 3 3 Data: 0x0 0x0 0x0 0x0 0x0 0x0
    802 32 1 mousePos: 3 3 Data: 0x0 0x0 0x0 0x0 0x0 0x0
    et je ne voudrais garder que la deuxieme et troisieme colonne par exemple, entre la 10e et 50e ligne.

  4. #4
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Il faut utiliser la fonction TEXTSCAN en étudiant bien toutes les options qu'elle présente.

    Pour dire que tu ne veux que la 2ème et 3ème colonne cela se fera grâce au formatage.
    Pour dire que tu veux commencer à lire à la 10ème ligne tu utiliseras l'option headerlines.
    Pour dire de s'arrêter à la 50ème ligne => là je ne vois pas à part le faire après

    Sinon il faut le faire avec les fonctions de bas niveau FOPEN/FSCANF/FCLOSE

  5. #5
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Voici le code te permettant de récupérer les colonnes 2 et 3 à partir de la ligne 3 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [A,B] = textread('test.log','%*d%d%d%*s','delimiter','\n','headerlines',2);

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 134
    Par défaut
    Merci c'est genial ca marche.

    Je vais pouvoir faire beaucoup de choses avec ca.

    Deux petites question encore :

    N'y a-t-il vraiment pas de moyen d'arreter la recuperation au bout d'un certain temps ?

    Je souhaiterais integrer cette commande dans une fonction qui me permette de faire cette manip sur tous les fichiers du repertoire courant. J'ai donc besoin d'une fonction qui recupere le nom de mes fichiers et les donne a la fonction textscan. Y-a-t-il un moyen de faire ca ?

    Encore merci.

  7. #7
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458

  8. #8
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 134
    Par défaut
    Bonjour.

    Je rebondis sur ce sujet.

    J'ai essaye de lire la doc de la fonction textread, mais meme avec ca, ses parametres me paraissent un peu flous.

    J'aurais donc aime savoir si vous pouviez me donner la ligne de code du textread comme citee plus haut qui me permettrait d'obtenir les trois premieres colonnes, plus toute la chaine de caractere qui se situe a partir de 'data' ?

    Merci.

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 134
    Par défaut
    C'est bon je me suis debrouille, en bricolant et en changeant petit a petit.

    Si jamais d'autres sont interesses, un code qui marche est celui la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        [A,B,C,D] = textread('test.log','%d%d%d%*22[^\n]%s','delimiter','\n','headerlines',95);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] Ne garder que certaines phrases avec preg_match_all
    Par bigs3232 dans le forum Langage
    Réponses: 3
    Dernier message: 29/08/2011, 23h27
  2. Réponses: 1
    Dernier message: 09/06/2011, 17h46
  3. condition: ne garder que certains alpha-numerique
    Par bibi5883 dans le forum Débuter
    Réponses: 8
    Dernier message: 12/09/2007, 17h30
  4. Ne faire apparaître que certaine colonne d'un tableau
    Par zuzuu dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 20/07/2006, 15h23
  5. [Oracle 8i] ne garder que certains enregistrements (COUNT ?)
    Par delphim dans le forum Langage SQL
    Réponses: 13
    Dernier message: 23/02/2005, 15h30

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