Bonjour à tous,
J'ouvre ici un sujet indépendant pour réaliser un programme non lié à ce que je fais d'habitude. Il s'agit d'un programme qui me serait utile dans la vie de tous les jours.
Voici d'abord le problème : je souhaite faire un programme qui, si je le lance, me permet de choisir un répertoire quelconque et qui pour ce répertoire recherche tous les fichiers d'extension .jpg et qui enfin me crée un fichier .txt avec le nom de ces fichiers .jpg dans leur ordre d'apparition et sans l'extension .jpg.
Par exemple si un répertoire comprend :
Je voudrais générer un fichier .txt dans le répertoire courant qui comporte :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 photo1.jpg photo2.jpg
Donc, pour résumer il s'agit simplement d'écrire la liste des élément d'un répertoire mais seulement pour un certain type de fichier de ce répertoire (ici des .jpg). Existe-t-il une fonction déjà faite qui puisse faire cela ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 photo1 photo2
Sinon j'ai entamé un code archaïque :
Celui-ci marche mais je ne sais pas comment écrire le contenu de "w" dans un fichier .txt et dans le répertoire courant. Cependant il y a un souci avec ce code : il s'agit d'un problème classique : si dans la ligne repertoire que je récupère avec uigetdir il y a un espace (par exemple : C:/Documents And Settings/...) et bien la commande dos ne fonctionne plus : le répertoire n'est pas trouvé. Peut-on pallier à ce problème malgré tout ? Parce que sinon je suis contraint de mettre intentionnellement les répertoire à analyser sur ma machine en des endroits sans espace.
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 liste_mp3 %Pour l'instant on travaille avec des jpg pour tester. %on stocke dans repertoire le nom du repertoire où on recherche les %éléments. repertoire=uigetdir; %recherche des éléments dans le repertoire (qui ne doit pas comporter %d'éspace) a='dir'; b=' '; c=repertoire; d='\*.jpg' e='/b'; elements_repertoire=[a,b,c,d,b,e]; [c w]=dos(elements_repertoire); w=strfind(w,'.jpg'); %Ecriture dans un fichier .txt des résultats ? end
Enfin, admettons que j'obtienne un code fonctionnel .m ; existe-t-il un moyen de le compiler (à la manière de la génération d'un .exe en C par exemple) de sorte que je puisse l'utiliser sur une autre machine qui elle n'a pas Matlab installé dessus ? Dans l'idéal j'aimerais avoir un programme que je lance sur n'importe quel machine, qui me demande le répertoire à traiter et me sors un fichier .txt faisant la liste des éléments .jpg
EDIT:
Pour l'écriture des résultats j'ai essayé quelque chose comme ceci :
Mais ceci ne fait rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 %Ecriture dans un fichier .txt des résultats ? fid=fopen('photos.txt','w'); fprintf(fid,'%s',w);
Partager