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 :

Lecture d'une donnée dans un fichier


Sujet :

MATLAB

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Points : 476
    Points
    476
    Par défaut Lecture d'une donnée dans un fichier
    Bonjour,

    J'ai un fichier texte assez compliqué du type :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    G'                       :   5.347333e+01 Pa
    G\\                      :   6.682957e+01 Pa
    Eta*                     :   2.724403e+00 Pa

    Afin de récupérer les valeurs de ces paramètres je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     X = textread(namefile,'%s','delimiter','\n');
     
         idx = strncmp(X,'G''                       :',4);  data.Gp = sscanf(X{idx},'G'' :   %f') ;
            idx = strncmp(X,'G\\                      :',4);   data.Gs = sscanf(X{idx},'G\\ :   %f') ;
            idx = strncmp(X,'Eta*                     :',6);   data.Eta = sscanf(X{idx},'Eta* :   %f')
    voici que j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    data = 
    
                  Gp: 53.4733
                  Gs: ''
                 Eta: 2.7244
    Saurez vous par quel miracle le code trouve toute les bonnes données SAUF Gs ?

    Merci !
    OS : taff > Window 7 32bit - Home > Windows 7 64bit
    Matlab : taff > v2013b - Home > r2009a

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Points : 476
    Points
    476
    Par défaut
    ha oui c'est vrai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data.Gs = sscanf(X{idx},'G\\\\ :   %f')
    OS : taff > Window 7 32bit - Home > Windows 7 64bit
    Matlab : taff > v2013b - Home > r2009a

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Le caractère '\' est un caractère d'échappement en C, et la sscanf est fortement inspirée de la fonction du même nom dans ce langage.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data.Gs = sscanf(X{idx},'G\\\\ :   %f') ;
    Remarques : Ne faisant la comparaison que sur 4 caractères, tu n'es pas obligé d'avoir d'aussi longues chaînes 'G'' :';
    Une autre façon de lire ton fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [champ donnees unites] = textread(namefile,'%s : %n %s');
    À noter que la fonction textread est dépréciée, et qu'il est recommandé d'utiliser textscan qui possède une syntaxe similaire.

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

Discussions similaires

  1. ajout d'une donnée dans un fichier texte
    Par sorenson2 dans le forum Langage
    Réponses: 2
    Dernier message: 09/12/2007, 12h41
  2. Comment suprimer une donnée dans un fichier texte ?
    Par mamou30 dans le forum Langage
    Réponses: 8
    Dernier message: 30/10/2007, 11h12
  3. Réponses: 1
    Dernier message: 26/09/2007, 19h55
  4. [Configuration] Supprimer une donnée dans un fichier
    Par cirtey dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 07/02/2007, 16h36
  5. [C#] [.NET] Lecture d'une classe dans un fichier
    Par niPrM dans le forum Windows Forms
    Réponses: 4
    Dernier message: 18/05/2004, 08h57

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