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 :

Modification de fichiers .txt dans une application faite par Compiler


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 10
    Points : 3
    Points
    3
    Par défaut Modification de fichiers .txt dans une application faite par Compiler
    Bonjour à tous,

    J'essaie de créer un exécutable windows d'un interface graphique créer dans Matlab via Matlab Compiler.

    L'utilisateur a travers l'interface graphique doit modifier des fichiers textes et les mettre à jour. Ce système fonctionne très bien quand nous le lançons dans Matlab, les fichiers s'actualisent et on peut donc s'adapter aux choix de l'interface.

    Cependant quand je crée l'application .exe, les problèmes arrivent. En effet, tout se build et package très bien. Je mets tous les fichiers nécessaires dans ces projets. Mais au moment de lancer l'application sur notre ordinateur, notre application ne modifie plus les fichiers textes... elle utilise la dernière sauvegarde faite dans matlab. Du coup notre application a plus aucun intérêt car l'interface graphique ne permet pas a l'utilisateur d'exploiter les fonctions de notre code..

    Avez vous déjà rencontré ce problème? Est ce que les fichiers textes sont bien inclus dans l'application créée par Matlab compiler et comment y accéder?

    Je ne comprends vraiment pas comment changer cela..
    Merci par avance.

    Maxime.

  2. #2
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour,

    Je ne connais pas le compiler, mais je vois mal comment il pourrait comprendre tout seul quelles sont ses ressources externes. C'est surement à toi de les mettre au bon endroit.

    elle utilise la dernière sauvegarde faite dans matlab
    Comment le fichier est-il ouvert ? Le code d'ouverture du fichier est compilé également ?
    Commence par printer le nom du fichier et son contenu dans un fichier de log pour voir ce que fait ton code compilé

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 10
    Points : 3
    Points
    3
    Par défaut
    Bonjour VV33D,

    Tout d'abord merci pour ta rapide réponse !

    Citation Envoyé par VV33D Voir le message
    Je ne connais pas le compiler, mais je vois mal comment il pourrait comprendre tout seul quelles sont ses ressources externes. C'est surement à toi de les mettre au bon endroit.
    En fait dans Compiler, on lui file le fichier principal puis on ajoute les fichiers dont il aura besoin.
    Pour ma part, le fichier principal est celui avec le code du GUIDE et ensuite je rajoutes les fonctions appelées et les fichiers textes.

    Comment le fichier est-il ouvert ? Le code d'ouverture du fichier est compilé également ?
    Commence par printer le nom du fichier et son contenu dans un fichier de log pour voir ce que fait ton code compilé
    Je t'avoue que étant débutant, j'ai pas trop compris ce que tu voulais dire... Peux tu m'expliquer?

  4. #4
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Peux tu m'expliquer?
    Comment écris tu dans les fichiers ? fopen() ? save() ?
    Le bout de code qui ouvre et écrit les fichiers fait-il parti de ce qui est compilé ?

    Je te suggère de compiler un code dans lequel tu as rajouté un peu de logging, c'est à dire ou tu écris dans un fichier de log fixe le nom du fichier ou tu écris, afin de vérifier que ton code compilé traite le bon fichier (ca me semble etre un bon point de départ). Par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    % ___ ton code ____
    pth= fullfile('C:','blabla','file.txt');
    save(pth,'pth');
    % __ une ligne supplémentaire pour logger des infos _____
    save('C:\log.txt','pth');
    Comme ca tu peux vérifier apres avoir fait tourner ton code ce que contient C:\log.txt, et vérifie si pth contient ce que tu attends.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 10
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par VV33D Voir le message
    Comment écris tu dans les fichiers ? fopen() ? save() ?
    Le bout de code qui ouvre et écrit les fichiers fait-il parti de ce qui est compilé ?
    J'écris dans les fichiers via un save() et je fais appel au fichier txt par un load()

    Oui le bout de code fait parti du code compilé.


    Je te suggère de compiler un code dans lequel tu as rajouté un peu de logging, c'est à dire ou tu écris dans un fichier de log fixe le nom du fichier ou tu écris, afin de vérifier que ton code compilé traite le bon fichier (ca me semble etre un bon point de départ). Par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    % ___ ton code ____
    pth= fullfile('C:','blabla','file.txt');
    save(pth,'pth');
    % __ une ligne supplémentaire pour logger des infos _____
    save('C:\log.txt','pth');
    Comme ca tu peux vérifier apres avoir fait tourner ton code ce que contient C:\log.txt, et vérifie si pth contient ce que tu attends.
    Je tente de créer une appli donc seulement avec ca pour voir si ça modifie les bons fichiers?

  6. #6
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Tu peux effectivement commencer par une appli bidon dans ce genre, mais je vois mal comment ca pourrait bugger.
    Je pensais a rajouter la ligne de log à ton vrai code, puis à le compiler et à tester

  7. #7
    Membre actif
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2013
    Messages : 189
    Points : 242
    Points
    242
    Par défaut
    Petite question : as-tu utilisé le deploytool?
    si tu as mis tes fichiers texte dans le "shared ressources and helper files" en fait il va créer une "image" de ton fichier texte et va travailler avec celle-ci, et pas avec ton vrai fichier texte (bon c'est un peu confus mais bon chuis pas un ponte hein!)
    Si c'est le cas, recompile sans mettre tes fichiers en shared ressources.

    petit test pour illustrer mon propos:

    - sauve dans un fichier 'test.mat' une variable 'a' du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    a = 1;
    save 'test' 'a'
    - cree un mini programme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function lecteur()
    load('test.mat')
    msgbox(num2str(a))
    - compile ce programme SANS mettre le fichier 'test.mat' dans les shared ressources

    - execute le programme dans le répartoire qui va bien, c'est à dire le répertoire ou il y a le fichier 'test.mat', il t'affiche normalement une boite de dialogue avec "1"
    - modifie ton fichier test.mat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    a = 2;
    save 'test' 'a'
    - réexectue ton programme, il te fait "2"

    - reinitialise ton fichier 'test.mat'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    a = 1;
    save 'test' 'a'
    -recompile ton programme AVEC 'test.mat' dans les shared ressources
    -execute le programme (et là dans n'importe quel répertoire!) , il t'affiche "1"
    - modifie ton fichier test.mat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    a = 2;
    save 'test' 'a'
    - réexectue ton programme, il te fait et te fera toujours "1"

    Voila, pour l'explication philosophique derrière, je sais pas trop.

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 10
    Points : 3
    Points
    3
    Par défaut
    Quand tu parles de ligne supplémentaire pour logger des infos ça veut dire que c'est la que je modifie mon fichier txt c'est bien ca?

    A ton avis, je le met plutot dans mon fichier "main" ou dans le fichier ou sont modifiés les fichiers txt?

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 10
    Points : 3
    Points
    3
    Par défaut
    Je vous remercie.. C'était effectivement le problème.. Une fois que je les mets plus dans l'appli tout fonctionne.

    Par contre, la j'ai accès à mes fichiers textes car ils sont sur mon PC c'est ca?

    Si je veux que mon application fonctionne sur ceux des autres, il faut que je mette les fichiers textes en plus de l'application mais pas dans l'application?

    Merci encore à vous deux.

  10. #10
    Membre actif
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2013
    Messages : 189
    Points : 242
    Points
    242
    Par défaut
    Il faudra effectivement que tu leur files tes fichiers textes.
    Je ne sais pas vraiment si il existe d'autre solutions...

Discussions similaires

  1. Utilisation des fichiers CSS dans une application Struts
    Par menzlitsh dans le forum Struts 1
    Réponses: 4
    Dernier message: 22/09/2006, 16h29
  2. Integration d'un fichier dll dans une application Java
    Par menzlitsh dans le forum Langage
    Réponses: 3
    Dernier message: 21/09/2006, 15h54
  3. importation d'un fichier txt dans une table
    Par pierre.egaud dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/09/2006, 16h26
  4. ligne de fichier txt dans une variable
    Par suya95 dans le forum Langage
    Réponses: 2
    Dernier message: 25/07/2006, 10h14
  5. ouvrir un fichier XML dans une application tierce
    Par boulator dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 09/06/2006, 11h44

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