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 avec architecture particulière


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur motoriste
    Inscrit en
    Février 2014
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur motoriste
    Secteur : Transports

    Informations forums :
    Inscription : Février 2014
    Messages : 76
    Par défaut Lecture de fichier avec architecture particulière
    Bonjour,
    Je souhaite lire un fichier de résultats issu d'un logiciel de calcul seulement l'architecture est assez particulière:

    <list><x row="631" col="1" list="-94.847176|
    -93.62446|-92.40155|-91.17844|-89.955124|-88.731606|
    -87.50789|-86.283966|-85.05985|-83.83553|-82.61101|
    -81.38629|-80.16137|-78.93625|-77.71092|-76.4854|
    -75.259674|-74.03375|-72.80763|-71.58131|-70.35478|
    -69.12806|-67.90113|-66.67401|-65.446686|-64.21916|
    -62.991436|-61.76351|-60.53539|-59.307064|-58.078545|
    -56.84982|-55.6209|-54.391777|-53.16246|
    607.81995|609.0398|610.2598|611.4801|612.7005|
    613.9212|615.142|616.3631|617.58435|618.80585|
    620.02747|621.2493|622.47144|623.69366|624.91614"/><y row="631" col="1" list="1.8219452|
    1.8576648|1.8948541|1.9335837|1.9739263|2.0159614|
    2.0597715|2.1054447|2.1530752|2.2027586|2.2546024|
    2.3087146|2.3652134|2.4242232|2.485872|2.5503006|
    2.6176577|2.688096|2.7617812|2.8388884|2.9196048|
    3.0041225|3.0926516|3.1854088|3.282627|3.384555|
    1.6867067|1.7169546|1.74841|1.7811378|1.815192"/></list></data></plot><plot id="25002" label1="hioqshihqsihioqottype="xy" sn="temp" xaxtype="engine-cyclic" xcycle="4-stroke" xlabel="sdvsv="61" ylabel="Temperature [UNIT]" yunit="32" zunit="0">
    <data datatype="xy" sdg2" name="cylàiàvq" typesdff="32" zunit="0">
    <list><x row="631" col="1" list="-94.847176|
    -93.62446|-92.40155|-91.17844|-89.955124|-88.731606|
    -87.50789|-86.283966|-85.05985|-83.83553|-82.61101|
    <list><x row="631" col="1" list="-94.847176|
    -93.62446|-92.40155|-91.17844|-89.955124|-88.731606|
    -87.50789|-86.283966|-85.05985|-83.83553|-82.61101|
    -81.38629|-80.16137|-78.93625|-77.71092|-76.4854|
    -75.259674|-74.03375|-72.80763|-71.58131|-70.35478|
    -69.12806|-67.90113|-66.67401|-65.446686|-64.21916|
    -62.991436|-61.76351|-60.53539|-59.307064|-58.078545|
    -56.84982|-55.6209|-54.391777|-53.16246|
    607.81995|609.0398|610.2598|611.4801|612.7005|
    613.9212|615.142|616.3631|617.58435|618.80585|
    620.02747|621.2493|622.47144|623.69366|624.91614"/><y row="631" col="1" list="1.8219452|
    1.8576648|1.8948541|1.9335837|1.9739263|2.0159614|
    2.0597715|2.1054447|2.1530752|2.2027586|2.2546024|
    2.3087146|2.3652134|2.4242232|2.485872|2.5503006|
    2.6176577|2.688096|2.7617812|2.8388884|2.9196048|
    3.0041225|3.0926516|3.1854088|3.282627|3.384555|
    1.6867067|1.7169546|1.74841|1.7811378|1.815192"/></list></data></plot><plot id="25002" label1="hioqshihqsihioqottype="xy" sn="temp" xaxtype="engine-cyclic" xcycle="4-stroke" xlabel="sdvsv="61" ylabel="Temperature [UNIT]" yunit="32" zunit="0">
    <data datatype="xy" sdg2" name="cylàiàvq" typesdff="32" zunit="0">
    <list><x row="631" col="1" list="-94.847176|
    -93.62446|-92.40155|-91.17844|-89.955124|-88.731606|
    -87.50789|-86.283966|-85.05985|-83.83553|-82.61101|
    Le format est quasi identique au précédent. Ce qui est récurent c'est que les nombres que je souhaite extraire sont toujours après le string list=".
    Sinon il y très peu de récurrence. Je ne sais donc pas trop comment m'y prendre.

    Merci d'avance de votre aide.

  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 317
    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 317
    Par défaut
    Ceci ressemble à un format XML.

    Tu peux utiliser la fonction de lecture xmlread (voir la fonction parseXML données dans la documentation) pour lire les fichiers puis extraire les valeurs numériques des champs XML lus

    [Edit] En y regardant de plus près, il y a des soucis de balisage pour la lecture XML
    Pourrais-tu nous dire quel logiciel génère ces fichiers ?
    Pourrais-tu nous transmettre un de ces fichiers (dans une archive zip ou rat) ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur motoriste
    Inscrit en
    Février 2014
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur motoriste
    Secteur : Transports

    Informations forums :
    Inscription : Février 2014
    Messages : 76
    Par défaut
    Merci pour votre réponse, j'ai mis un fichier en pièce jointe.
    Fichiers attachés Fichiers attachés

  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 317
    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 317
    Par défaut
    Voici une 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
    xDoc = xmlread('exemple.gu');
     
    allx = xDoc.getElementsByTagName('x');
    ally = xDoc.getElementsByTagName('y');
     
    for n = 0:allx.getLength-1
     
        x_txt{n+1} = char(allx.item(n).getAttribute('list'));
        y_txt{n+1} = char(ally.item(n).getAttribute('list'));
     
    end
     
    x_txt = strrep(x_txt, '|', ' ');
    y_txt = strrep(y_txt, '|', ' ');
     
    x = cellfun(@str2num, x_txt, 'UniformOutput', false);
    y = cellfun(@str2num, y_txt, 'UniformOutput', false);
    Les valeurs numériques sont au final stockées dans deux tableaux de cellules

    Par curiosité, quel logiciel génère ces fichiers ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur motoriste
    Inscrit en
    Février 2014
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur motoriste
    Secteur : Transports

    Informations forums :
    Inscription : Février 2014
    Messages : 76
    Par défaut
    Merci cela marche plutôt bien.
    Le logiciel est GT-Power un logiciel de simulation numérique.

    Est-il également possible de sortir de la même façon les "string" en gras ci-dessous (L259 et L513) pour chaque série de donnée ?:

    L259
    1.6867067|1.7169546|1.74841|1.7811378|1.815192"/></list></data></plot><plot id="25002" label1="EngCylinder part cylinder-01" name="Temperature" plottype="xy" sn="temp" xaxtype="engine-cyclic" xcycle="4-stroke" xlabel="Crank Angle [UNIT]" xunit="61" ylabel="Temperature [UNIT]" yunit="32" zunit="0">

    L260
    <data datatype="xy" dbname="" filetype="2" name="cylinder-01" type="exp" xunit="61" yunit="32" zunit="0">

    L513
    411.51013|413.35733|415.2496|417.1884|419.1745"/></list></data></plot><plot id="25003" label1="EngCylinder part cylinder-01" name="Volume" plottype="xy" sn="vol" xaxtype="engine-cyclic" xcycle="4-stroke" xlabel="Crank Angle [UNIT]" xunit="61" ylabel="Volume [UNIT]" yunit="17" zunit="0">
    L514
    <data datatype="xy" dbname="" filetype="2" name="cylinder-01" type="exp" xunit="61" yunit="17" zunit="0">


    Merci de votre aide

  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 317
    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 317
    Par défaut
    Il suffit de reprendre exactement la même idée en changeant simplement les arguments d'entrée de getElementsByTagName et getAttribute

    Essaie et tiens nous au courant

Discussions similaires

  1. quelques soucis de lecture de fichiers avec fscanf
    Par monsieurab dans le forum Bibliothèque standard
    Réponses: 2
    Dernier message: 05/11/2008, 14h28
  2. Lecture de fichier avec fread.Taille limitée?
    Par cheveche4 dans le forum C
    Réponses: 5
    Dernier message: 15/06/2007, 14h56
  3. lecture de fichier avec comparaison
    Par idsec dans le forum Web
    Réponses: 1
    Dernier message: 25/04/2007, 17h25
  4. lecture de fichier avec ftplib
    Par yggdrazil dans le forum Réseau/Web
    Réponses: 2
    Dernier message: 14/10/2006, 21h47
  5. [LG]Lecture de fichier avec une adresse internet
    Par forbin dans le forum Langage
    Réponses: 8
    Dernier message: 09/02/2005, 19h00

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