[..] Script : Tagger.

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Avatar du membre
MisterP
Niveau 4
Niveau 4
Messages : 86
Enregistré le : lun. 14 juil. 2014 23:47
Status : Hors ligne

[..] Script : Tagger.

#1

Message par MisterP »

Bonjour ,
Après plusieurs heures , j'ai réussi a écrire un script pour tagger mes morceaux de musiques à l'aide du logiciel tagg&rename.
J'aimerai avoir un volontaire pour regarder mon code et me dire si il est bon :D (je ne parle pas des erreurs d'écritures , ca je sais qu'il y en a, 44 et 1 warning) mais avant de passer des heures a débugger mon code , j'aimerai savoir si après il fera bien ce que je souhaite.
Donc quelques précisions :
Mes morceaux sont rangés de cette manière :
WavDatabase / [Artiste] / [Album] ([Année)] / [N° que le morceau occupe dans l'album] - [NomMorceau]
exemple :
WavDatabase/Nightcore/Dreamworld (2013)/01 - Monster (DotEXE Remix)


Le code :
► Afficher le texte
Merci d'avance !!!
WARNING ! : THE ROOKY IS IN THE PLACE ! :P
Avatar du membre
MisterP
Niveau 4
Niveau 4
Messages : 86
Enregistré le : lun. 14 juil. 2014 23:47
Status : Hors ligne

Re: [..] Script : Tagger.

#2

Message par MisterP »

Personne ??? .... :| :| :|
WARNING ! : THE ROOKY IS IN THE PLACE ! :P
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Script : Tagger.

#3

Message par mikell »

Normal... sérieusement tu t'attendais à quoi ?
Décidément t'as toujours pas compris
MisterP a écrit : avant de passer des heures a débugger mon code , j'aimerai savoir si après il fera bien ce que je souhaite.
C'est comme si tu disais :
Voilà une caisse de pièces métalliques, une fois ces pièces modifiées et correctement assemblées est-ce que j'aurai une voiture qui roule ?
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
MisterP
Niveau 4
Niveau 4
Messages : 86
Enregistré le : lun. 14 juil. 2014 23:47
Status : Hors ligne

Re: [..] Script : Tagger.

#4

Message par MisterP »

mikell a écrit :Normal... sérieusement tu t'attendais à quoi ?
Décidément t'as toujours pas compris
MisterP a écrit : avant de passer des heures a débugger mon code , j'aimerai savoir si après il fera bien ce que je souhaite.
C'est comme si tu disais :
Voilà une caisse de pièces métalliques, une fois ces pièces modifiées et correctement assemblées est-ce que j'aurai une voiture qui roule ?
.... Ben en même temps je suis pas à l'aise avec ce langage ...
Alors oui je pose la question de la voiture ...
Et c'est pas une caisse de pièces , elle sont déjà mises correctement et il y a tout d'écrit , non ?... :|
Donc j'ai juste quelques fautes de synthaxe à gérer normalement, et j'aimerai juste savoir si une fois que j'aurai fini de corriger ces fautes, ce sera bon.
Modifié en dernier par MisterP le mar. 05 août 2014 14:09, modifié 1 fois.
WARNING ! : THE ROOKY IS IN THE PLACE ! :P
overflow
Niveau 5
Niveau 5
Messages : 138
Enregistré le : sam. 05 déc. 2009 23:49
Status : Hors ligne

Re: [..] Script : Tagger.

#5

Message par overflow »

oui sa seras bon tu peux corrigé
Avatar du membre
MisterP
Niveau 4
Niveau 4
Messages : 86
Enregistré le : lun. 14 juil. 2014 23:47
Status : Hors ligne

Re: [..] Script : Tagger.

#6

Message par MisterP »

overflow a écrit :oui sa seras bon tu peux corrigé
D'accord, merci, là je suis en vacances (donc pas d'ordi à disposition, ou du moins pas comme je l'aimerais) mais je rentre la dernière semaine d'aout, donc je corrigerais ça quand je pourrait.

Merci :wink:
WARNING ! : THE ROOKY IS IN THE PLACE ! :P
Avatar du membre
MisterP
Niveau 4
Niveau 4
Messages : 86
Enregistré le : lun. 14 juil. 2014 23:47
Status : Hors ligne

Re: [..] Script : Tagger.

#7

Message par MisterP »

Bonjour,
Je viens de rentrer de vacances ! :D
Donc je reviens sur mon script :
► Afficher le texte

J'aurai besoin de savoir comment compléter cette ligne :
Global $NbrMorc=
; A COMPLETER !!! NbrMorc = le nombre de fichiers (morceaux) dans le dossier album!!!

De ce fait je pourrai enlever mon Warning :)

Ensuite, la principale cause de mes erreurs sont des erreurs de synthaxe :
"C:\Users\LALALA\Desktop\Tagger avancé1.au3"(165,91) : error: syntax error
ControlClick ( "Find art file.", "", "[CLASS:DirectUIHWND; INSTANCE:2]", button = "left" [,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\Users\LALALA\Desktop\Tagger avancé1.au3"(165,105) : error: syntax error
ControlClick ( "Find art file.", "", "[CLASS:DirectUIHWND; INSTANCE:2]", button = "left" [, clicks = 1 [,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\Users\LALALA\Desktop\Tagger avancé1.au3"(165,120) : error: syntax error
ControlClick ( "Find art file.", "", "[CLASS:DirectUIHWND; INSTANCE:2]", button = "left" [, clicks = 1 [, 227 [, 173]]]]

Elles sont donc toutes les mêmes, mais je ne comprends pas ce qu'il y a de mauvais la dedans ... ?
Est-ce que je dois enlever mes espaces ?

J'ai également beaucoup de :
error: Statement cannot be just an expression.
Si quelqu'un peut m'expliquer ce que ça veut dire ...
Une déclaration ne peux pas juste être une expression
Ca me le fait surtout aux endroits ou j'appèle mes fonctions ... :? Et où je met mes EndFunc ....


Merci beaucoup d'avance,
WARNING ! : THE ROOKY IS IN THE PLACE ! :P
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Script : Tagger.

#8

Message par mikell »

erreur 1

Code : Tout sélectionner

ControlClick ( "Tag Editor", "", "[CLASS:TEdit; INSTANCE:11]", button = "left" [, clicks = 1 [, 592 [, 329]]]] )
Dans l'aide les crochets indiquent que le paramètre est optionnel. Si tu inscris le paramètre faut pas mettre de crochets

Code : Tout sélectionner

ControlClick ( "Tag Editor", "", "[CLASS:TEdit; INSTANCE:11]", "left", 1, 592, 329)
erreur 2
Une déclaration de fonction doit toujours comporter des parenthèses
Func _TaggMorc => Func _TaggMorc()
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Script : Tagger.

#9

Message par orax »

MisterP a écrit :Global $NbrMorc=
; A COMPLETER !!! NbrMorc = le nombre de fichiers (morceaux) dans le dossier album
Si juste des fichiers musicaux tu as, alors les compter de cette façon tu peux : clic droit > Propriétés (ou Alt+Entrée) sur le dossier album, faire tu devras. Et solution tu auras.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Script : Tagger.

#10

Message par mikell »

Un peu plus simple peut-être ceci est

Code : Tout sélectionner

Msgbox(0,"", DirGetSize($album, 1)[1] )
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Script : Tagger.

#11

Message par orax »

Effectivement c'est mieux.

J'ai fait l'essai sur un dossier : avec l'explorateur j'ai 3 007 fichiers et avec DirGetSize j'ai 3 013 fichiers. :mrgreen:
Les liens symboliques sur les dossiers et les jonctions sont comptés comme des fichiers avec DirGetSize. Normal ou pas, je n'ai pas vu d'avertissement dans la doc.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
MisterP
Niveau 4
Niveau 4
Messages : 86
Enregistré le : lun. 14 juil. 2014 23:47
Status : Hors ligne

Re: [..] Script : Tagger.

#12

Message par MisterP »

@Mikell : Merci !! Je suis en train de corriger ma syntaxe ! :D

Ensuite pour l'histoire du :
Global $NbrMorc=
; A COMPLETER !!! NbrMorc = le nombre de fichiers (morceaux) dans le dossier album
On va compliquer un peu la chose (comme si c'était pas assez dur comme ça ... :? )

Dans mes dossiers albums, j'ai X fichiers mais le nombre de morceaux est en réalité X-1, parce que j'ai 1 fichier qui est en réalité un .PNG qui est la cover de l'album, que je supprime par la suite (il faudra donc que je fasse aussi un script pour ça ! Mais il sera plus facile :D )
Est ce qu'une chose de cette sorte marcherait ? :
Global $NbrMorc
$NbrMorc = DirGetSize ($albumsNamesFoldersArray[$k])
$NbrMorc -= 1
faire tu devras. Et solution tu auras
Jeune padawan essai :wink: !!! :lol:
WARNING ! : THE ROOKY IS IN THE PLACE ! :P
Avatar du membre
MisterP
Niveau 4
Niveau 4
Messages : 86
Enregistré le : lun. 14 juil. 2014 23:47
Status : Hors ligne

Re: [..] Script : Tagger.

#13

Message par MisterP »

Hop hop hop ! Je corrige l'erreur dite 2.
Et pouf ! 10 erreurs de moins ! :D
Ahhh... si tout pouvais être si facile ! 4 parenthèses rajoutées et 10 erreurs de moins ! :lol:

Pour l'erreur dite 1, je supprime mes caractères en trop.
Quelques minutes plus tard, c'est fait ! :)

Je corrige quelques autres petits trucs bêtes que je n'aurai pas du laisser passer ... :roll:

Et me revoilà avec 2 erreurs :
La première qui est celle qu'il me faut compléter (la valeur de NbrMorc)
Et la deuxième qui est la suivante, une faute qui n'a pas lieu d'être ... Je reste perplexe devant cette "faute" ...
error: syntax error (illegal character)
ControlSend ( "Tag&Rename 3.8.1", "", "[CLASS:TComboEdit; INSTANCE:1]",
"C:\Users\LALALA\Desktop\$mainMusicFoldersArray[$i]"\

Apparemment il ne veux pas me gobber ma barre ... Sauf que je fais comment moi pour lui spécifier mon chemin de dossier ...
Une autre question que je me pose, ne devrais-je pas enlever les guillemets autour des mes \ ? (dans la ligne de code ci-dessus et la complète ci-dessous : )
"C:\Users\LALALA\Desktop\$mainMusicFoldersArray[$i]"\"$artistsNamesFoldersArray[$j]"\"$albumsNamesFoldersArray[$k]")

Je viens de tester sans les guillemets, plus d'erreur ! :D
Mais est-ce que c'est réellement bon ? ... :oops:

Ca sent la fin !! :mrgreen:


EDIT : RAJOUT DU CODE !! :P
► Afficher le texte
WARNING ! : THE ROOKY IS IN THE PLACE ! :P
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Script : Tagger.

#14

Message par mikell »

Flemme de regarder le code mais (en principe) voilà la syntaxe correcte pour ce que tu mentionnes :

Code : Tout sélectionner

"C:\Users\LALALA\Desktop\" & $mainMusicFoldersArray[$i] & "\" & $artistsNamesFoldersArray[$j] & "\" & $albumsNamesFoldersArray[$k]
Et pour le nombre de fichiers, non mais sérieusement, j'ai pas vu le code mais y a pas un moment où tu listes ces fichiers dans une array ? selon la fonction utilisée pour obtenir l'array, ce nombre sera donné ou bien par $array[0] ou bien par UBound($array)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
MisterP
Niveau 4
Niveau 4
Messages : 86
Enregistré le : lun. 14 juil. 2014 23:47
Status : Hors ligne

Re: [..] Script : Tagger.

#15

Message par MisterP »

J'ai mis :

Code : Tout sélectionner

C:\Users\LALALA\Desktop\$mainMusicFoldersArray[$i]\$artistsNamesFoldersArray[$j]\$albumsNamesFoldersArray[$k]
C'est bon ou pas ? (ça m'enlève l'erreur) parce que sinon il ne m'accepte pas le "\ le premier guillemet il me le prends, le slash aussi mais le deuxième guillemet il veux pas ...

Pour ce qui concerne le nombre de fichiers, je fais des array, mais il me faut enlever 1 a la valeur, c'est possible ?
Si oui, je pense qu'il me faut utiliser $tempsArray ? (a la toute fin du code, dans la fonction _GetMusicName($file)
Je dois déclarer en Global et pas Local mes valeurs et je prends $tempArray[0] ensuite je met $NbrMorc = $tempArray[0], c'est censé marcher ?
En plus, dans mon Renamer, le script ne renomme que mes .wav donc même pas besoin de faire -1 :D

Merci d'avance,
WARNING ! : THE ROOKY IS IN THE PLACE ! :P
Avatar du membre
MisterP
Niveau 4
Niveau 4
Messages : 86
Enregistré le : lun. 14 juil. 2014 23:47
Status : Hors ligne

Re: [..] Script : Tagger.

#16

Message par MisterP »

UP :D
Quelqu'un peut me confirmer ce que j'ai écrit plus haut, svp ? :D
WARNING ! : THE ROOKY IS IN THE PLACE ! :P
Faco
Niveau 4
Niveau 4
Messages : 80
Enregistré le : lun. 29 juil. 2013 18:09
Status : Hors ligne

Re: [..] Script : Tagger.

#17

Message par Faco »

Salut,
Non pour concaténer une chaine de caractère avec des variables c'est comme la écrit mikell.
Avatar du membre
MisterP
Niveau 4
Niveau 4
Messages : 86
Enregistré le : lun. 14 juil. 2014 23:47
Status : Hors ligne

Re: [..] Script : Tagger.

#18

Message par MisterP »

Faco a écrit :Salut,
Non pour concaténer une chaine de caractère avec des variables c'est comme la écrit mikell.
D'accord , merci ;)
Mais j'ai un problème quand je fais tel qu'il a écrit , j'ai une erreur qui apparaît : Illegal Caracter ...
Il n'accepte pas le slash ou le guillemet qui est après le slash ...

Comment régler ce problème ? svp
WARNING ! : THE ROOKY IS IN THE PLACE ! :P
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Script : Tagger.

#19

Message par orax »

T'as réessayé ? Car il me semble que mikell avait laissé un " de trop à la fin de son code (...$albumsNamesFoldersArray[$k]"), mais là il n'y est plus donc ça doit marcher.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Faco
Niveau 4
Niveau 4
Messages : 80
Enregistré le : lun. 29 juil. 2013 18:09
Status : Hors ligne

Re: [..] Script : Tagger.

#20

Message par Faco »

je sais pas trop, rajoute un consoleWrite à l’endroit où tu utilise ta chaine de caractère, tu verras bien si il y a une erreur :
► Afficher le texte
Répondre