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 :

Extraction d'une ligne de caractère dans un fichier trace


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Extraction d'une ligne de caractère dans un fichier trace
    Bonjour,

    je suis nouveau donc d'avance je m'excuse si ma mise en page ne correspond pas à ce qui est attendu, je reste à l'écoute de toutes remarques à ce sujet.

    Sinon pour rentrer dans le vif du sujet mon problèmeest le suivant:

    J'ai un fichier trace dans lequel je retrouve divers informations concernant le déroulement d'une éxpérimentation.

    Chaque début de ligne commence par l'heure avec une précision à la ms du genre "17:25:42.658". Cette information a son importance.
    Ce que je souhaite c'est pouvoir récupérer cette information sur 2 lignes précise. Le truc c'est que le fichier peut être composer de plus de 10000 lignes.

    Je souhaite donc extraires les lignes qui ont entre autre comme info une valeur en Héxa précise.

    Par exemple isoler les lignes qui on la valeur "x035". Pour que je puisse derrière récupérer l'heure qui est défini en début de ligne.

    Je vois comment faire sous linux mais le hic c'est que je dois faire ça sous matlab.
    y a pas une option avec "fgetl" qui permette d'obtenir les lignes ayant un caractère précis.

    Je reste à disposition pour toutes autres informations merci à vous tous

  2. #2
    Membre confirmé
    Avatar de Dam2227
    Inscrit en
    Juin 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juin 2007
    Messages : 343
    Points : 487
    Points
    487
    Par défaut
    Salut. En utilisant fgetl, il faut lire toutes les lignes et mettre une condition. Si elle est vérifiée, tu enregistres ce que tu veux, sinon, tu passes à la lignes suivantes. Ca devrait marcher comme ça.
    Matlab 7.14.0.739 (R2012a)
    C/C++, python, R, SQL, Pig, MR

    Ma philosophie: Ne rien faire, mais le faire bien.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    c'est cool. c'est une fonction que j'ai toujours utilisé sous sa forme basique (sans condition)
    ça s'écrirait comment avec comme condition du style avoir le caractère "x025" par exemple merci pour ton aide au combien précieuse

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    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 302
    Points : 52 884
    Points
    52 884
    Par défaut
    Je ne suis pas sur de bien comprendre... si ton fichier est un fichier text, montre nous quelques une de ses lignes.

    Sinon par caractère x025, tu veux dire le % de la table ASCII (37) ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  5. #5
    Membre confirmé
    Avatar de Dam2227
    Inscrit en
    Juin 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juin 2007
    Messages : 343
    Points : 487
    Points
    487
    Par défaut
    Et bien, tu lis chaque ligne et tu les enregistres dans une variable a :
    puis, il te suffit de faire une condition sur a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if a(position de ton caractère)==ton caractère spécial
    tu enregistres la partie de a que tu désires dans une autre variable
    et tu fais cela sur tout ton fichier avec une boucle while. Maintenant, il se peut que tu puisses utiliser une autre fonction plus performante, mais il faudrait voir quelques une de tes lignes comme le suggère Dut.

    Voilà un bout de programme que j'ai fait pour décaler les affichages des sous titres lorsqu'ils ne sont pas bien calés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    name='C1.srt';
    fid=fopen(name,'rt');
    while 1
        incs=incs+1;
        a=fgetl(fid);
    if a(1)=='0' && a(14)=='-'
    milisec=num2str(str2num(a(10:12))+milisecondes);
    end
    end
    a est ici la variable qui enregistre chaque ligne du fichier avec fgetl. Voilà, j'espère que c'est plus clair.
    ++
    Matlab 7.14.0.739 (R2012a)
    C/C++, python, R, SQL, Pig, MR

    Ma philosophie: Ne rien faire, mais le faire bien.

Discussions similaires

  1. [Batch] extraction caractère d'une chaine de caractère dans un fichier texte
    Par Zoïïc dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 24/06/2014, 19h20
  2. [script bash] Rechercher une ligne de caractères dans un fichier
    Par arnaudperfect dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 09/09/2010, 11h42
  3. [VB]Recherche d'une chaine de caractère dans un fichier
    Par Empty_body dans le forum VB 6 et antérieur
    Réponses: 26
    Dernier message: 16/02/2006, 09h10
  4. Ecriture d'une chaine de caractères dans un fichier
    Par fleur_de_rose dans le forum MFC
    Réponses: 6
    Dernier message: 10/02/2006, 09h34
  5. [langage] Sauter une ligne en ecrivant dans un fichier
    Par mickey02 dans le forum Langage
    Réponses: 3
    Dernier message: 17/03/2005, 18h02

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