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 :

fopen m'embète !


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2009
    Messages : 27
    Points : 10
    Points
    10
    Par défaut fopen m'embète !
    Je veux charger un fichier .txt (voir le code ci-dessous). Lorsque je séléctionne le fichier txt, un message d'erreur apparait dans la fenetre de commandes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ??? Error using ==> textscan
    Invalid file identifier.  Use fopen to generate a valid file identifier.
    Si j'observe la valeur de la variable "fid", et bien => fid = -1 !
    J'ai tenté avec un autre fichier txt. celui-ci passe très bien !, mais pourtant je vois pas de différence entre ces deux fichier txt, la structure est pareil, pourtant l'un passe et l'autre pas du tout !!!

    Voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    plan_load = uigetfile('*','Importer 3 pts du plan');
     
    fid = fopen(plan_load,'r');
    plan_import = textscan(fid,'%*s %f %f %f %f %f %f %f %f %f','delimiter',',','headerLines',0); 
    fclose(fid);
     
    for i=1:size(plan_import,2)
        data.plan(:,i) = plan_import{1,i}(:,1);
    end


    voici les fichiers txt:

    A) CELUI QUI FONCTIONNE:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    P05_bet_br_hz0,-5.419,-0.770,0.400,-5.461,-0.372,0.400,-5.461,-0.372,0.000
    P05_bet_br_hz30,-5,-0.5,0.2,-5.461,-0.4,0.2,-5.441,-0.3,0.000
    B) CELUI QUI FONCTIONNE PAS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    PIL05_hz0,-5.458,-0.573,0.000,-5.458,-0.573,0.400,-5.479,-0.374,0.400
    P05_hz30,0,0,0,0,0,0,-5.387,-0.387,0.400
    P05_hz60,0,0,0,0,0,0,-5.310,-0.440,0.400
    Vous avez une idée ?

  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,

    Est-ce que tes fichiers se trouvent dans le même répertoire? Teste en utilisant le chemin complet pour ouvrir tes fichiers:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    [filename,pathname] = uigetfile('*','Importer 3 pts du plan');
    if (pathname==0);return;end
     
    fid = fopen(fullfile(pathname,filename),'r');
    if (fid == -1); return; end
    Bonne soirée,
    Duf

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2009
    Messages : 27
    Points : 10
    Points
    10
    Par défaut
    non ils ne sont pas dans le même répertoire.
    Ils ne sont pas non plus en lecture seule, ni même ouverts (si jamais vous vous posez la question..).

    En spécifiant directement le chemin d'accès vers le fichier txt (plan_load = 'C:\toto\plan.txt), ça fonctionne très bien, mais c'est pas pratique.

  4. #4
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 828
    Points
    14 828
    Par défaut
    Citation Envoyé par nicolasf85 Voir le message
    c'est pas pratique.
    Pourquoi donc ?

    Il te suffit juste de récupérer les 2 arguments de sortie de UIGETFILE, puis de les concaténer avec FULLFILE.
    Ce n'est pas si compliqué et cela donne un code plus robuste.

    Comment voudrais-tu que MATLAB "devine" où se trouvent tes fichiers ? (à moins d'ajouter au PATH tous les répertoires de ton PC ce qui est évidemment une très mauvaise idée)

Discussions similaires

  1. Différence open et fopen
    Par SteelBox dans le forum C
    Réponses: 6
    Dernier message: 01/07/2003, 21h32
  2. fopen -> différences entres les types d'ouvertur
    Par Patrick PETIT dans le forum C
    Réponses: 10
    Dernier message: 01/06/2003, 18h19
  3. Réponses: 5
    Dernier message: 11/12/2002, 12h31
  4. Ouvrir (fopen) un fichier caché
    Par shef dans le forum C
    Réponses: 2
    Dernier message: 09/09/2002, 09h06
  5. Réponses: 2
    Dernier message: 06/07/2002, 12h36

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