Page 1 sur 3

[..] Script : Tagger.

Posté : mer. 30 juil. 2014 23:41
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 !!!

Re: [..] Script : Tagger.

Posté : ven. 01 août 2014 15:04
par MisterP
Personne ??? .... :| :| :|

Re: [..] Script : Tagger.

Posté : ven. 01 août 2014 15:18
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 ?

Re: [..] Script : Tagger.

Posté : ven. 01 août 2014 21:17
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.

Re: [..] Script : Tagger.

Posté : sam. 02 août 2014 01:01
par overflow
oui sa seras bon tu peux corrigé

Re: [..] Script : Tagger.

Posté : mar. 05 août 2014 14:08
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:

Re: [..] Script : Tagger.

Posté : sam. 16 août 2014 11:53
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,

Re: [..] Script : Tagger.

Posté : sam. 16 août 2014 14:20
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()

Re: [..] Script : Tagger.

Posté : sam. 16 août 2014 17:12
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.

Re: [..] Script : Tagger.

Posté : sam. 16 août 2014 18:16
par mikell
Un peu plus simple peut-être ceci est

Code : Tout sélectionner

Msgbox(0,"", DirGetSize($album, 1)[1] )

Re: [..] Script : Tagger.

Posté : sam. 16 août 2014 19:15
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.

Re: [..] Script : Tagger.

Posté : sam. 16 août 2014 22:35
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:

Re: [..] Script : Tagger.

Posté : sam. 16 août 2014 23:32
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

Re: [..] Script : Tagger.

Posté : dim. 17 août 2014 00:27
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)

Re: [..] Script : Tagger.

Posté : dim. 17 août 2014 12:57
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,

Re: [..] Script : Tagger.

Posté : mar. 19 août 2014 10:44
par MisterP
UP :D
Quelqu'un peut me confirmer ce que j'ai écrit plus haut, svp ? :D

Re: [..] Script : Tagger.

Posté : mar. 19 août 2014 12:38
par Faco
Salut,
Non pour concaténer une chaine de caractère avec des variables c'est comme la écrit mikell.

Re: [..] Script : Tagger.

Posté : mar. 19 août 2014 14:11
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

Re: [..] Script : Tagger.

Posté : mar. 19 août 2014 14:59
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.

Re: [..] Script : Tagger.

Posté : mar. 19 août 2014 16:16
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