IPB

Bienvenue invité ( Connexion | Inscription )

> [Résolu] Supprimer l'espace en début de ligne
Options
m00n
posté 16 Apr 2017, 16:14
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
Go to the top of the page
 
+Quote Post
 
Start new topic
Réponse(s)
m00n
posté 19 Apr 2017, 09:44
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
Go to the top of the page
 
+Quote Post

Les messages de ce sujet


Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 18th July 2025 - 00:44