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 :

comparaison de chaines de caractères donne résultat bizarre [Débutant]


Sujet :

MATLAB

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut comparaison de chaines de caractères donne résultat bizarre
    salut tous,

    j'ai lu des messages sur le forum et j'ai vu que si on veut utiliser des chaines de caractères il faut utiliser: "strcmp"
    http://www.developpez.net/forums/d49...es-caracteres/

    jusqu'ici tous va bien, j'ai essayé cette fonction et j'ai bien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    strcmp('yes','no')=0
    strcmp('yes','yes')=1
    par contre j'ai fais un bout de code et ça plante
    j'ai un fichier texte qui contient sur une ligne ceci:
    je voudrais lire toutes les lignes precedentes jusqu'a ce que j'arrive à cette ligne, j'ai donc fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    motClef='*Aaa';
    fid2 = fopen([fichierLecture '.inp'],'r');
    ligne = fgets(fid2);
    while (strcmp(ligne,motClef)==0)
    ligne = fgets(fid2);
    end
    ceci devrait fonctionner mais probleme !
    strcmp(ligne,motClef) me renvoi toujours 0 !!!!! même lorsqu'il devrait renvoyer 1, il y a quelque chose qui doit mechapper

    j'ai donc pensé que ça venait de ma declaration de la chaine de caractère, j'ai donc essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    motClef=sprintf('*Aaa')
    mais le resultat est le meme

    pourriez vous m'expliquer svp

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

    Sauf que
    Citation Envoyé par doc fgets
    Read line from file, keeping newline characters
    et motClef ne contient justement pas ces caractères de fin de ligne.
    Utilises plutôt FGETL

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    merci beaucoup WinJerome!

    je viens de remplacer par ceci ma variable:
    motClef='*Aaa'\n;

    et à présent ça marche nikel
    super!!!!!!!



    au passage j'ai une question:


    si ma "ligne" contient des données comme ceci:

    1, 2.5, 52, 5.6,

    comment extraire mes nombres de cette lignes et les mettre dans une ligne d'une matrice (je ne connais pas le nombre de chiffre sur chaque ligne)

    => je ne vois pas trop comment faire ceci ...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Deux fonctions pour cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    doc sscanf
    doc textscan

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    je vais regarder ceci, merci Jerome

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

Discussions similaires

  1. [débutant] Comparaison début chaines de caractères
    Par Anthony17 dans le forum Delphi
    Réponses: 2
    Dernier message: 01/06/2006, 16h44
  2. Réponses: 2
    Dernier message: 10/05/2006, 15h23
  3. comparaison de chaine de caractères
    Par lecyberax dans le forum C
    Réponses: 10
    Dernier message: 24/03/2006, 19h30
  4. Réponses: 2
    Dernier message: 23/03/2006, 12h39
  5. Réponses: 11
    Dernier message: 22/03/2006, 21h57

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