Bonjour,

Dans le cadre de mon boulot de chargé de post prod sur Final Cut Pro x, j'écris parfois de petites applications pour lire et modifier des XML exportés depuis FCP X (Final Cut Pro X).
J'aimerais trouver un point d'entrée dans Swift comme j'avais pu le faire avec l'aide de quelques uns d'entre vous sur AppleScript.
Depuis ce petit coup de main, j'ai réussi à me familiariser avec l'Apple Script.

Pour transposer, j'essaie donc de réécrire certaines petites app écrite en AppleScript en Swift.
La lecture de l'anglais dans les Tuto me fatigue beaucoup et complexifie l'apprentissage et je crois que pour l'instant il me manque les logiques profonde de Swift. Il me faudra du temps...

Je pose mes questions et si vous trouvez qu'elles sont trop coûteuses en temps de réponse, c'est pas grave... je finirai bien par trouver

Question 01:

Ma première question concerne les termes "contains" et "thru": J'aimerais trouver l'équivalent dans Swift...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
set T_MediaId to "media id="
set T_Name to "name="
if La_Ligne contains "<media id=" then
	set P_MediaId to (text ((offset of T_MediaId in La_Ligne) + 10) thru ((offset of T_Name in La_Ligne) - 3) of La_Ligne)
Je pourrais boucler sur les character de la ligne mais je pense qu'il existe une commande plus rapide...

Et si vous avez le courage, quel serait l'équivalent de la dernière ligne

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
set P_MediaId to (text ((offset of T_MediaId in La_Ligne) + 10) thru ((offset of T_Name in La_Ligne) - 3) of La_Ligne)
Question complémentaire:

Peut-on trouver l'offset d'un ensemble de mot (et non d'un caractère) : par exemple l'offset de "est" dans la phrase "le cheval est plan"

Question 02: (qui ne doit pas avoir une réponse simple)

Mon but est de traduire le tout début de mont programme en AppleScript:
Part 01a: ici une fois l'application lancée, une fenêtre s'ouvre et demande à l'utilisateur de choisir un fichier de type "fcpxml"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
on run 
	set source to choose file of type {"fcpxml"} with prompt "Select the file .fcpxml to process :"
 
	Prog_Principal(source)
end run
Part 01b (début du programme principal): ici on crée un fichier vide de même type ("fcpxml") à côté de l'original.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
on Prog_Principal(source)
	tell application "Finder"
		set Nom to name of source
		set Nouv_Nom to (text 1 thru ((length of Nom) - 7) of Nom) & "_NEW.fcpxml"
		set Destination to ((container of source) as text) & Nouv_Nom
	end tell
En vous remerciant par avance pour vos réponses éventuelles.

Martin Gosset

PS: si l'un d'entre vous se sentait la disponibilité de m'aider davantage dans ce début d'apprentissage, je suis formateur sur FCP X et peut donc en échange et avec grand grand plaisir, fournir toute explication sur ce logiciel ou encore offrir mes documents d'apprentissages (visible ici : martingosset.com)...