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 de données dans un fichier txt


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Points : 21
    Points
    21
    Par défaut Lecture de données dans un fichier txt
    Bonjour,

    j'ai un problème de lecture de données. J'ai déja lu quelque chose posté sur ce probleme mais je n'ai pas bien compris le code,avec le delimiteur et tout ça. Le fichier texte que j'ai, se présente sous cette forme, c'est un exemple:

    ligne1: %Toutes_devises
    ligne2:
    ligne3: %EUR %USD %GBP
    ligne4: 11 22 14
    ligne5: 24 55 77

    et ainsi de suite, beaucoup de données.

    je voudrais lire les devises (ligne3), pas les nombres à savoir lire: EUR,USD,GBP (NB: le nombre de colonnes peut varier,là on en a 3 mais on peut en avoir 10 ou 15)
    Je voudrais comme résultat un vecteur A=['EUR';'USD;'GBP']

    Merci de votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 308
    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 308
    Points : 52 891
    Points
    52 891
    Par défaut
    Une solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    fid=fopen('data.txt','rt'); % ouverture du fichier en lecture
     
    fgetl(fid); % saute la première ligne
    fgetl(fid); % saute la seconde ligne
     
    str=fgetl(fid); % récupère la troisième ligne
    devise=strread(str,'%s'); % lit les devises et les stocke dans un cell arrray
     
    fclose(fid); % fermeture du fichier
     
    devise

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Points : 21
    Points
    21
    Par défaut
    Vraiment un très grand MERCI

    Super sympa.

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Points : 21
    Points
    21
    Par défaut
    Désolé mais un petit problème persisite,

    comment faire pour spécifier le path dans l'instruction, j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     fid=fopen('MATLAB6p5\work\PFE\BIAT\FX\currencies.txt','rt')
    mais ça n'a pas marché

  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 308
    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 308
    Points : 52 891
    Points
    52 891
    Par défaut
    Comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fname=fullfile(matlabroot,'work\PFE\BIAT\FX','currencies.txt');
    fid=fopen(fname,'rt');

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Points : 21
    Points
    21
    Par défaut
    merci pour la réponse,

    mais un autre problème est apparu,comme devise est de type cell je peux pas utiliser avec la fonction sprintf,,or j'ai besoin de cette fonction

    Comment doc convertir devise de type cell en un autre format reconnaissable par sprintf?

    Voilà pour ceux que ça interesse c'est la fonction strvcat

  7. #7
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 308
    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 308
    Points : 52 891
    Points
    52 891
    Par défaut
    On peut aussi utiliser la fonction CHAR ici

    Sinon, SPRINTF "accepte" le cell array, à condition de faire ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     sprintf('La devise est : %s\n',M{:})

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/03/2007, 17h38
  2. [VBS]Lire des données dans un fichier .txt
    Par kacxial dans le forum VBScript
    Réponses: 4
    Dernier message: 28/02/2007, 13h44
  3. Rajout de données dans un fichier txt
    Par ben_ghost dans le forum C++/CLI
    Réponses: 4
    Dernier message: 10/10/2006, 11h30
  4. Comment créer une base de donnée dans un fichier .txt
    Par vantoff dans le forum C++Builder
    Réponses: 9
    Dernier message: 19/07/2006, 19h44
  5. Remplacer / Supprimer des données dans un fichier txt
    Par PedroBD dans le forum Langage
    Réponses: 3
    Dernier message: 03/07/2006, 13h33

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