TRI ET GROUPEMENT DE FICHIERS .MP3 SELON LE CONTENU DE LEURS TAGS

Messages postés
3489
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
- - Dernière réponse : cs_Bidou
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
- 15 avril 2007 à 11:54
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/42233-tri-et-groupement-de-fichiers-mp3-selon-le-contenu-de-leurs-tags

Afficher la suite 
MorpionMx
Messages postés
3489
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
38 -
Salut,
J'ai rapidement testé.
Voici, si je peux me permettre, les points qu'il faudrait améliorer :

- MultiThreading
- Gestion des sous-dossiers pour le repertoire source
- Ne pas pouvoir changer le dossier de destination en cours de traitement...
- D'un point de vue de l'utilisateur, je prefererais que les chemins des repertoires soient sauvé dans un fichier de config plutot que dans la base de registre

Bonne continuation :)
cs_Bidou
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
37 -
Mouais..........
J'ajouterais à la liste de Mx (regardé rapidement aussi):

- Au secours !!!
// Essaie 10 fois de copier le fichier de destination
for(i=1; i<10; i++)

- String.Format, Path.Combine
sPathFile = sPathDir + "\" + sTitle + i.ToString() + sExt;

- Path.GetExtension
// Prélève l'extension du fichier
i = fi.Name.LastIndexOf('.');
String sExt = fi.Name.Substring(i).ToLower();

- Ouatch... padRight et padLeft
// Retaille les chaînes (peuvent être padées par 0 ou espace)
i = sTitle.IndexOf((char)0);
if (i !-1) sTitle sTitle.Substring(0, i);
i = sArtist.IndexOf((char)0);
if (i !-1) sArtist sArtist.Substring(0, i);
sTitle = sTitle.Trim();
sArtist = sArtist.Trim().ToLower();

Voilà, je m'arrête là, la liste serait encore longue....
Vallorbain
Messages postés
29
Date d'inscription
vendredi 18 juillet 2003
Statut
Membre
Dernière intervention
1 février 2019
-
- MultiThreading : juste pour eviter l'utilisation de DoEvents?

- Gestion des sous-dossiers pour le repertoire source : Pas nécessaire, eMule ou Kaza enregistre les fichiers dans un seul répertoire.

- Ne pas pouvoir changer le dossier de destination en cours de traitement. OK. btnSrc1.Enabled = false; etc...

- Fichier de config : Personellement je préfère la registry. Quelqu'un peut m'indiquer comment on peut enregistrer des données dans un fichier de config?

- Essaie 10 fois de copier le fichier de destination : But : Le fichier existe : ajoute un numéro au titre... sPathFile = sPathDir + "\" + sTitle + i.ToString() + sExt; On peut aussi tester l'existence du fichier...

- Pour Path, padRight et padLeft : Merci, j'étais passé à côté...
A+
cs_Bidou
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
37 -
Pas de multi-threading = programme inutilisable s'il fait des longs traitement (ça peut être le cas du tient). Si tu ne sais pas ce que c'est les threads, n'hésites pas à chercher de la doc. Mx à également fait un bon tuto sur le cross-threading que tu trouveras sur ce site.

Utiliser la registry est assez mauvais. Parfois (souvent?) on a pas les droits pour y lire/écrire, alors qu'on a toujours les droits pour écrire un fichier, ne serait-ce dans les documents du user (app data).

Pour le reste, tu peux revoir une bonne partie du code qui se simplifie énormément, ce que je t'ai donné plus haut c'est juste ceux que j'ai vu en lisant le code en diagonale mais y'en assurément beaucoup d'autre.

Bonne continuation, et espérons que le code soit mis à jour...
Vallorbain
Messages postés
29
Date d'inscription
vendredi 18 juillet 2003
Statut
Membre
Dernière intervention
1 février 2019
-
Le programme a été mis à jour :
- Multi-threading.
- Meilleur utilisation de Path.
- Suppresion de l'accès à la registry.
- Ajout d'un fichier de config.

Pour Bidou : L'utilisation de padRight et padLeft ne fait pas de sens dans le contexte. Lis mieux le code.

A+