Bonjour/Bonsoir !
Je suis en train de faire une interface graphique et je laisse l'utilisateur choisir les noms des images (inputdlg) qu'il enregistre. Ces noms correspondront alors aux fields d'une structure. Il faut donc que je vérifie que le nom entré par l'utilisateur respecte certains critères pour ne pas me faire engueuler par Matlab...
A priori, l'utilisateur devrait avoir le choix d'utiliser des lettres minuscules/majuscules, des chiffres et l'underscore. Je tente donc de vérifier le nom entré grâce à une table ASCII.
Une table ascii peut être trouvée ici : http://www.matrixlab-examples.com/ascii-chart.html
Je ne recopie pas la table dans ce poste parce que ça devient tout simplement illisible.
J'ai essayé plusieurs petites variantes, voici la dernière en date :
Toutes les variantes ont le même problème : c'est comme si || agissait comme un ou exclusif.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 name = inputdlg(Entrer un nom','Naming area...'); if ~(all(((char(name)>47)&(char(name)<58)))||(all(((char(name)>64)&(char(name)<91))))||(all((char(name)==95)))||(all(((char(name)>96)&(char(name)<123))))) h = msgbox('Le nom contient des caractères non autorisés.,'Wrong name','warn'); end
Je ne peux pas par exemple entrer le nom 'rouge2' mais 'rouge' seul ou '2' seul fonctionnent. Et là je n'ai plus d'idées...
Est-ce-que je dois utiliser un autre opérateur logique ou une fonction autre que all ?...
Thanks !
Partager