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 :

Ouverture d'un fichier txt et lecture par blocs de données


Sujet :

MATLAB

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Ouverture d'un fichier txt et lecture par blocs de données
    Bonjour a tous,
    Je me tourne vers vous puisque la solution ne m'est pas encore apparue !
    Alors mon probleme est le suivant :
    Dans un fichier texte j'ai plusieurs blocs de données dont les dimensions sont differentes. Chaque bloc est separé du suivant par une entete. Cette entete annoncant la prochaine variable est donc legerement differente a chaque fois. Une constante est que mon entete commence toujours par la meme lettre "C".
    Le premier type de bloc est composé de 62 lignes et 60 colonnes tandis que le second type de bloc est composé de certains sont 202 lignes et 302 colonnes. Je ne sais pas précisement ou se trouve les blocs du second type dans mon fichier txt. Le but etant de faire quelque chose d'automatique...

    La fonction fscanf me permet d'ouvrir des fichiers contenant des blocs dont les dimensions sont toujours les memes. Je ne vois pas trop comment faire ...
    Si quelqu'un a une solution pour moi ???


    Merci

  2. #2
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Bonjour,

    Une solution pourrait être de lire l'intégralité de ton fichier puis de traiter les différents cas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    % Lecture du fichier
    fid = fopen('mon_fichier', 'rt');
    if (fid == -1); return; end;
    car = fread(fid);
    fclose(fid);
    Ensuite le traitement peut se faire de différentes manières (suivant le format de ton fichier), une manière est de stocker les données ligne par ligne dans un cell array:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    data_cell = textread(char(car'), '%s', 'delimiter', '\n');
    Il est ensuite facile de déterminer les lignes contenant tes délimiteurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    delimiter_pos = find(strncmp(data_cell, 'C', 1));
    Tu peux ensuite extraire le tableau de cellule de tes données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for i = 1:length(delimiter_pos)-1
    data_txt{i} = data_cell(delimiter_pos(i)+1:delimiter_pos(i+1)-1);
    end
    Enfin il ne reste plus qu'à convertir les données de cell array of strings en matrice:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    data = cell2mat(cellfun(@str2num, data_txt, 'UniformOutput', false));
    Voilà, par contre je n'ai pas testé le code, ce n'est pas forcément la solution la plus simple mais je pense que tu devrais pouvoir t'inspirer d'une partie de ce code pour ton problème.

    Bonne journée,
    Duf

Discussions similaires

  1. [VBA-E] macro ouverture liste de fichier txt
    Par didi73 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/03/2007, 14h30
  2. [VBA - E] - Ouverture d'un fichier .txt
    Par jimbololo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/06/2006, 13h45
  3. lecture par blocs dans un fichier avec marqueur
    Par cheikh_tk dans le forum C
    Réponses: 3
    Dernier message: 06/06/2006, 16h39
  4. Réponses: 4
    Dernier message: 08/04/2006, 09h10
  5. Ouverture d'un fichier Excel en VBA par Access
    Par illight dans le forum Access
    Réponses: 2
    Dernier message: 02/11/2005, 11h14

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