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 des caractères accentués dans un fichier


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 78
    Points : 35
    Points
    35
    Par défaut Lecture des caractères accentués dans un fichier
    bonsoir

    suite à cette discussion, je cherche à obtenir les caractères accentués
    lors de la lecture d' un fichier externe
    avec la commande textscan

    tout est parfaitement lu sauf LES CARACTERES ACCENTUES
    un blanc remplace les dits caractères.

    une idée ?

    albertgl
    a+

  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 308
    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 308
    Points : 52 892
    Points
    52 892
    Par défaut
    Que retourne ceci (en remplaçant "..." par le nom de ton fichier) ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    fid = fopen(...,'r');
       [filename, permission, machineformat, encoding] = fopen(fid)
    fclose(fid);
    Et peux-tu attacher un des fichiers (dans une archive zip ou rar) en nous disant ce que tu cherches à lire exactement ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 78
    Points : 35
    Points
    35
    Par défaut
    bonjour

    delimiter virgule NON car si dans champs deja 1 virgule ===erreur
    dememe pour : ; etc

    je prefere encore un format fixe de 20 caracteres .........
    ca au moins je peux lire ce que je veux.

    le contexte du prog sera réalisé pour démarrer une application
    pour du calcul sous eurocode 5 en matlab.

    ca sera donc une subroutine qui sera realisee pour
    lire des fichiers textes qui n' auront comme différence que le nombre de champs et le nombre de caracteres par champs.

    voila aussi pourquoi un format fixe.

    ah oui
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    feature('DefaultCharacterSet','UTF-8')
    n'apporte rien.

    albert
    Fichiers attachés Fichiers attachés

  4. #4
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 78
    Points : 35
    Points
    35
    Par défaut
    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
     
    filename =
     
    \dotm\datadotm\adress.ro.dat
     
     
    permission =
     
    rb
     
     
    machineformat =
     
    ieee-le
     
     
    encoding =
     
    windows-1252
    albert

  5. #5
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 78
    Points : 35
    Points
    35
    Par défaut
    et si je remplace une ligne par ceci
    c est encure plus flagrand


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    EéaàcçuùxxxxxxxxxxxxAvenue Léopold III  26   xx   BE7134Péronnes-Lez-Binche 064 33 36 91064 33 67 11toitureservice@proximedia.be
    albert

  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 308
    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 308
    Points : 52 892
    Points
    52 892
    Par défaut
    Les fonctions TEXTREAD/TEXSCAN ont quelques soucis avec les encodages...

    Essaie ceci :
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    fid = fopen('./Desktop/adress.ro.dat','rt','n','windows-1252');
    if fid == -1
        error('Ouverture du fichier impossible')
    end
     
    k = 1;
    fgetl(fid);
     
    while ~feof(fid)
        str = fgetl(fid);
     
        ro.nom{k} = str(1:20);
        ro.rue{k} = str(21:40);
        ro.num{k} = str(41:45);
        ro.boite{k} = str(46:50);
        ro.pays{k} = str(51:52);
        ro.cp{k} = str(53:56);
        ro.ville{k} = str(57:76);
        ro.tel{k} = str(77:88);
        ro.fax{k} = str(89:100);
        ro.email{k} = str(101:end);
     
        k = k+1;
        fgetl(fid);
    end
     
    fclose(fid);
     
    ro.nom = strtrim(ro.nom);
    ro.rue = strtrim(ro.rue);
    ro.num = strtrim(ro.num);
    ro.boite = strtrim(ro.boite);
    ro.pays = strtrim(ro.pays);
    ro.cp = strtrim(ro.cp);
    ro.ville = strtrim(ro.ville);
    ro.tel = strtrim(ro.tel);
    ro.fax = strtrim(ro.fax);
    ro.email = strtrim(ro.email);

  7. #7
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 78
    Points : 35
    Points
    35
    Par défaut
    j essaie

    mais me donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ??? Index exceeds matrix dimensions.
     
    Error in ==> readrodat at 14
        ro.nom{k} = str(1:20);

  8. #8
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 78
    Points : 35
    Points
    35
    Par défaut

    ok pour les caractères accentués

    merci

    on était donc bien en windows-1252

    je vais continuer la prog

    albertgl
    a+

  9. #9
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 78
    Points : 35
    Points
    35
    Par défaut
    pour le message d'erreur

    verifier que le fichier de data comporte bien 4 lignes

    si besoin faire un retour après la derniere ligne

    albert

  10. #10
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 78
    Points : 35
    Points
    35
    Par défaut suite caract accentués
    bonjour,

    matlab est orienté pour les fichiers texte en lecture
    plutot sur les colonnes.

    lors de la lecture de fichiers textes
    avec textscan on obtient facilement
    avec %s et autres des colonnes bien pratiques.

    ce que je souhaite c est plutôt lire tout
    bêtement 80 caractères par ligne mais y compris
    les accentués.

    comment faire ça ?
    une idée.
    j ai mis en annexe le fichier de départ
    albertgl
    Fichiers attachés Fichiers attachés

  11. #11
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 78
    Points : 35
    Points
    35
    Par défaut suite caract accentués
    re

    sans s'occuper des espaces etc..
    80 car en 1 fois par lignes.

    dans les 80 car les espaces et les accentués sont compris.

    albertgl

  12. #12
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 308
    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 308
    Points : 52 892
    Points
    52 892
    Par défaut
    Et on fait quoi si une ligne a moins de 80 caractères ?

  13. #13
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 78
    Points : 35
    Points
    35
    Par défaut
    re

    on les mets en mémoire

    ou

    on les lit quand on en a besoin (peut importe quand)

    selon l'organigramme de l'ensemble du programme.

    albertgl

  14. #14
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 308
    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 308
    Points : 52 892
    Points
    52 892
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    fid = fopen('mom_colonne.TXT','rt','n','windows-1252');
     
    n = 1;
    while ~feof(fid)
        str = fgetl(fid);
        if numel(str)>80
            X{n} = str(1:80);
            n = n+1;
        end    
    end
     
    fclose(fid);
    Je ne suis pas sûr de bien comprendre ta problèmatique...

  15. #15
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 78
    Points : 35
    Points
    35
    Par défaut
    bonjour dut

    oui c'est bien ça !

    mais ...

    je pense que c'est <= 80

    à ce moment toutes les lignes auront 80 colonnes

    albertgl

    mais ...
    maintenant comment faire pour avoir :
    X(C12) qui comprend les 3 lignes qui suivent C12 dans le fichier
    puis
    X(C23) qui comprend les 3 lignes qui suivent C23....
    puis
    X(C41) qui .....C41....

    à la rigueur ca pourrait être X_C12 ...X_C23

    A ce moment je peux créer une listbox avec C_12...C_23...C_41...
    dans le gui.

    Faut quand même savoir que dans ce cas précis tu as 3 colonnes en béton
    nommées C12 C23 C41
    Mais tu t'en doutais hein!
    Et que selon les cas tu pourrais en avoir beaucoup plus.

    albertgl

  16. #16
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 78
    Points : 35
    Points
    35
    Par défaut
    oui

    donc dans C12
    je pourrais avoir les 3 lignes qui suivent C12 et qui sont dans le fichier txt.

    idem pour les autres.

    oui c'est ça.

    albertgl

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/09/2010, 10h01
  2. des caractères "nul" dans mon fichier !
    Par warning dans le forum C++
    Réponses: 1
    Dernier message: 10/04/2007, 14h50
  3. Problème de caractères accentués dans un fichier .bat
    Par JeremieT dans le forum Windows XP
    Réponses: 1
    Dernier message: 02/03/2007, 16h32
  4. [JList] Lecture des données sauvegardées dans un fichier
    Par Myogtha dans le forum Composants
    Réponses: 7
    Dernier message: 10/06/2004, 21h05
  5. Chaînes avec des caractères accentués dans Interbase
    Par François Marliac dans le forum Bases de données
    Réponses: 2
    Dernier message: 04/03/2004, 22h39

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