![]() |
Bienvenue invité ( Connexion | Inscription )
![]() |
![]()
Message
#1
|
|
![]() Macbidouilleur de bronze ! ![]() ![]() Groupe : Membres Messages : 391 Inscrit : 2 Jun 2006 Membre no 62 332 ![]() |
Bonjour à tous et bon WE de Pâques.
Je voudrais automatiser la suppression d'éventuels espaces en début de ligne dans un fichier texte. Pour être précis, dans ma bibliothèque iTunes, les paroles des chansons sont complétées. Malheureusement pour beaucoup d'entre elles, il y a un espace qui s'est glissé en début de chaque ligne. Je voudrait, si cet espace existe, supprimer cet espace. Mon but est d'écrire un applescript qui récupérerait les paroles, les placerait dans textediit et en supprimerait les espaces inutiles avant de réinjecter le texte dans iTunes. Est-ce réalisable ? Un génie du script pourrait-il me refiler un bout de code ? Merci à vous tous. m00n Ce message a été modifié par m00n - 19 Apr 2017, 09:48. -------------------- MacBook Pro (15-inch, Late 2016), 2,9 GHz Intel Core i7, 16 Go 2133 MHz LPDDR3
|
|
|
![]() |
![]()
Message
#2
|
|
![]() Macbidouilleur de bronze ! ![]() ![]() Groupe : Membres Messages : 391 Inscrit : 2 Jun 2006 Membre no 62 332 ![]() |
Eh bien je me réponds à moi-même. Puisque ça m'a quand même pris plusieurs jours pour apprendre applescript et arriver à pondre péniblement un truc qui fonctionne, je vous offre le code :
Code (* © didier *) (* RECUPERATION DES INFOS : TITRE, NOM ET PAROLES*) tell application "iTunes" if player state is playing then -- un morceau est en cours de lecture set morceau to current track tell morceau to set {titre, artiste, paroles} to {get name, get artist, get lyrics} else if selection is not {} and (count items of selection) is 1 then -- un morceau n'est pas en cours de lecture : on prend alors le morceau qui est sélectionné set morceau to item 1 of selection tell morceau to set {titre, artiste, paroles} to {get name, get artist, get lyrics} else -- si aucun morceau n'est sélectionné, on ne fait rien return end if end tell log {titre, artiste} (* SUPPRESSION DES ESPACES EN DEBUT DE LIGNE DES PAROLES *) set oldDelim to AppleScript's text item delimiters --sauvegarde des delimiters set AppleScript's text item delimiters to return & " " --ce qu'on veut remplacer est la constante de retour chariot 'return' et l'espace qui le suit set theList to text items of paroles -- c'est dans la string paroles qu'on veut faire les remplacements set AppleScript's text item delimiters to return --c'est par un return simple qu'on veut remplacer le return espace set paroles to theList as string set AppleScript's text item delimiters to oldDelim --restauration des delimiters log paroles (* ECRITURE DES PAROLES CORRIGEES *) tell application "iTunes" if player state is playing then -- un morceau est en cours de lecture set morceau to current track set lyrics of morceau to (paroles as string) display notification artiste & " - " & titre & " a été corrigé" with title "iTunes" subtitle "Suppression des espaces dans les paroles" else if selection is not {} and (count items of selection) is 1 then -- un morceau n'est pas en cours de lecture : on prend alors le morceau qui est sélectionné set morceau to item 1 of selection set lyrics of morceau to (paroles as string) display notification artiste & " - " & titre & " a été corrigé" with title "iTunes" subtitle "Suppression des espaces dans les paroles" else -- si aucun morceau n'est sélectionné, on ne fait rien display notification "pas de correction" return end if end tell A+ m00n -------------------- MacBook Pro (15-inch, Late 2016), 2,9 GHz Intel Core i7, 16 Go 2133 MHz LPDDR3
|
|
|
![]() ![]() |
Nous sommes le : 18th July 2025 - 00:44 |