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 fichier texte avec colonnes incomplètes


Sujet :

MATLAB

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 171
    Points : 62
    Points
    62
    Par défaut Lecture de fichier texte avec colonnes incomplètes
    Bonjour,
    J'ai à présent un problème similaire à celui-ci à résoudre avec un autre type de fichier texte (cf PJ).
    Le fichier a le même encodage que celui précédemment cité. Le problème est que dans ce fichier j'ai des valeurs numérique et des caractères. Un deuxième problème est que dans le fichier il y a 3 colonnes mais que la dernière ne possède pas de valeurs à toutes les lignes.

    Quelle méthode serait-il possible d'utiliser ?

    Merci !
    Fichiers attachés Fichiers attachés

  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 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
    Comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [A,B,C] = textread('nomparametre.txt','%s%f%f','delimiter',';','emptyvalues',NaN);

    ou encore :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    fid = fopen('nomparametre.txt','r');
    X = textscan(fid,'%s%f%f','delimiter',';','collectoutput',true,'emptyvalue',NaN);
    fclose(fid);
    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)

  3. #3
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 171
    Points : 62
    Points
    62
    Par défaut
    Merci pour ta réponse Dut !

    J'avais utilisé la méthode textscan qui fonctionnait bien, mais seulement avec un fichier encodé en UTF8... Avec l'encodage actuel du fichier ça ne fonctionne pas !

  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
    Encore une fois, pourrais-tu attacher le fichier avec l'encodage non converti ?
    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 du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 171
    Points : 62
    Points
    62
    Par défaut
    Erreur de ma part, je croyais avoir joint le bon fichier dans mon premier message !
    Voila le bon fichier en PJ
    Fichiers attachés Fichiers attachés

  6. #6
    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
    Une première idée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    fid = fopen('nomparametre.txt','r','l');
     
    S = fread(fid,[1,inf],'uint16=>char');
     
    fclose(fid);
     
     
    idx = strfind(S,[13 10]);
     
    C = cell(numel(idx)-1,1);
    M = zeros(numel(idx)-1,2);
    for n = 2:numel(idx)-1
     
        str = S(idx(n)+2:idx(n+1));
     
        if isempty(str)
            continue
        end
     
        tmp = textscan(str,'%s%f%f','delimiter',';','emptyvalue',nan,'collectoutput',true);
     
        C(n) = tmp{1};
        M(n,:) = tmp{2};
     
    end
    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)

  7. #7
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 171
    Points : 62
    Points
    62
    Par défaut
    J'ai testé le code que tu m'as proposé, effectué deux trois ajustements par rapport à ce que je voulais et ça marche parfaitement !
    Merci beaucoup

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

Discussions similaires

  1. Lire un fichier texte avec colonnes de longueur variable
    Par Jack_nicholson dans le forum SAS Base
    Réponses: 5
    Dernier message: 07/03/2011, 15h03
  2. Lecture de fichier text avec colonne vide
    Par Ballim dans le forum MATLAB
    Réponses: 5
    Dernier message: 12/11/2008, 16h12
  3. Lecture d'un fichier texte avec ligne vide.
    Par cotcouture dans le forum Général Python
    Réponses: 2
    Dernier message: 06/10/2006, 02h54
  4. Lecture fichier texte avec un nombre de lignes à ignorer
    Par TravelMate dans le forum Langage
    Réponses: 20
    Dernier message: 02/08/2006, 11h59
  5. Réponses: 20
    Dernier message: 09/02/2006, 09h45

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