Bonjour,
je suis nouveau et débutant dans l'utilisation de Matlab. J'ai cherché sur votre forum et dans l'aide de Matlab mais je n'ai pas réussi à trouver la réponse à mon problème.
En fait, l'IHM réalisée me permet de charger des fichiers à l'aide de uigetfile pour ensuite être traités.
Le problème est que je dois vérifier les extensions de fichiers et le fait que l'utilisateur a charger les fichiers ou non. Pour cela j'utilise une boucle while qui vérifie, à l'aide de flag, que l'utilisateur a bien charger les bon types de fichiers.
C'est là qu'est mon problème, lorsque l'utilisateur sélectionne les bons types de fichiers cela fonctionne mais lorsque je fait du dysfonctionnel en sélectionnant un ou plusieurs mauvais fichiers ou en ne chargeant rien je rentre dans une boucle infini qui et je suis obliger de stoper Matlab...
J'ai essayer de mettre un waitfor en début de boucle afin d'attendre un clic sur le bouton qui permet de lancer la vérification mais cela ne fait rien...
Je vous met une partie du code concerné :
Il y a 3 "flags" car 3 fichiers à tester. Ce qui se passe c'est que si l'utilisateur ne fait pas les bons choix du premier coup, les flags concernés sont à 0 tout le temps d'où la boucle infini...
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 function affich_suivi(varargin) % Initialisation des flags de vérification flag_nom_mdl = 0; flag_nom_m = 0; flag_nom_xls = 0; while ((flag_nom_mdl ~= 1)||(flag_nom_m ~= 1)||(flag_nom_xls ~= 1)) %Définition des variables d'entrées nom_mdl_entree_ut = get(nom_mdl,'string'); nom_calib_entree_ut = get(nom_m,'string'); nom_dico_entree_ut = get(nom_xls,'string'); % Vérification sur le fichier .mdl if ((strcmp(nom_mdl_entree_ut,'') == 1)||(strcmp(nom_mdl_entree_ut,num2str(0)) == 1 )) set(commentaire,'String','Veuillez sélectionner le modèle.'); flag_nom_mdl = 0; % pas de modèle sélectionné else if (strcmp('.mdl',nom_mdl_entree_ut(end-3:end)) == 0) set(commentaire,'String','Veuillez sélectionner le modèle au format .mdl'); flag_nom_mdl = 0; % mauvais format pour le modèle else flag_nom_mdl = 1; % modèle sélectionné au bon format set(commentaire,'String','Modèle sélectionné'); end end end
Je voudrais qu'une fois rentré dans cette boucle, il y ait une attente d'un appui sur le bouton de lancement qui est défini comme cela :
Les set me permettent d'afficher dans une fenêtre de commentaire pour avoir un suivi de ce qui se passe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 bouton_lancement = uicontrol('Parent',fond,... 'Style','Pushbutton',... 'FontWeight','bold',... 'String','Lancer la vérification',... 'Units','normalized',... 'Position',[.325 .01 .35 .05],... 'tag','lancement',... 'Callback',@affich_suivi);
Si vous pouviez m'indiquer s'il est possible et si oui, m'orienter un peu cela m'aiderait beaucoup!
Bonne journée et merci par avance
Partager