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 :

Importer fichier texte avec des cases vides [Débutant]


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Importer fichier texte avec des cases vides
    Bonjour,

    J’essaye vainement d’importer un fichier contenant des chaînes de caractères séparées par des tabulations.

    Le fichier ressemble à ça :
    chaîne 1 \t chaîne 2
    chaîne 3 \t chaîne 4
    \t chaîne 6
    chaîne 7 \t chaîne 8
    chaîne 9 \t
    C’est donc un tableau de deux colonnes de chaînes de plusieurs caractères, avec des espaces.

    Mon code ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fid=fopen('fichier.txt','r');
    txt=textscan(fid,'%s%s','Delimiter','\t','MultipleDelimsAsOne',0,'EmptyValue',0);
    Le problème, c’est qu’en sortie, j’ai un cell array composé de deux vecteurs de tailles différentes (le 2e tableau fait une case de moins que le 1er).

    Je cherche donc soit à ajouter une case à la fin de mon deuxième tableau pour pouvoir passer de cell array à array normal, soit à prendre en compte le dernier délimiteur, choses que je ne sais pas faire.

    Mais le mieux, si c’est possible, ce serait de pouvoir mettre plusieurs tabulations dans mon fichier pour qu’il soit plus lisible (car les chaînes ne font pas toutes la même taille). Malheureusement, quand je fais ça, et que je mets 'MultipleDelimsAsOne' à 1, les chaînes de la 2e colonne passent dans la 1re quand il n’y a rien dans la 1re (et les deux tableaux sont toujours de taille différente).

    Si quelqu’un a une idée, c’est super !
    Merci de m’avoir lu !

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

    En rajoutant un retour à la ligne à la fin de ton fichier texte comme ceci,
    chaîne 1 \t chaîne 2
    chaîne 3 \t chaîne 4
    \t chaîne 6
    chaîne 7 \t chaîne 8
    chaîne 9 \t 
    
    
    Tu obtiens bien deux tableaux de même taille.

    Petites remarques:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    fid=fopen('test.txt','rt'); % fichier texte
    txt = textscan(fid,'%s%s','Delimiter','\t','EmptyValue',0); % MultipleDelimsAsOne est à 0 par défault
    fclose(fid); % à ne pas oublier

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Ça marche comme sur des roulettes !
    Merci mille fois !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    i = 1;
    while i <= 1000
        disp('merci')
        i = i + 1;
    end

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

Discussions similaires

  1. Importer fichier texte avec mise en forme sur page Web
    Par Ditrius dans le forum Langage
    Réponses: 6
    Dernier message: 18/10/2010, 16h34
  2. Afficher le contenu d'un fichier texte avec des balise PHP
    Par bastian06n dans le forum Langage
    Réponses: 6
    Dernier message: 08/07/2010, 10h30
  3. [AC-2003] Importation fichier texte avec DoCmd.Transfertext
    Par clemini dans le forum VBA Access
    Réponses: 10
    Dernier message: 31/07/2009, 11h38
  4. Import fichier texte avec des champs variables
    Par joshua12 dans le forum Access
    Réponses: 4
    Dernier message: 26/09/2006, 09h06
  5. Import fichier texte avec separateur milliers "."
    Par mgrsys dans le forum Access
    Réponses: 8
    Dernier message: 12/09/2006, 08h58

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