AIDE sur un AppleScript

lutti522

Membre confirmé
3 Juin 2010
36
0
Bonjour,

Je suis nouveau dans le monde de la programmation et donc de l'Applescript.

J'apprend sur le tas avec des fichiers .pdf dédié à l'Applescript.

Je souhaite créer une petite application qui me donnerai la signification des acronymes que je rentre dans une boite de dialogue.
Je m'explique, je suis étudiant en aéronautique et le nombre d'acronyme qui existe est énorme.
Par exemple si je rentre dans la boite de dialogue FADEC je veux que l'application me dise ce que c'est à savoir : "Full Authority Digital Engin Control".
Bien sur, il faudra rentrer tous les acronymes dans le script auparavant.

J'ai un début mais j'ai un problème dans et je ne sais d'où cela vient. Si il y a des experts de la chose sur le forum qui se sentent de m'aide, je les remercie au préalable. :zen:

Voici ce que j'ai fait :

Bloc de code:
set temp to display dialog "Quel acronyme ?" default answer ""
set maList to {"Distance Measuring Equipment", "Full Authority Digital Engin Control", "Air Data Computer", "Air Trafic Control"}
set DME to "Distance Measuring Equipment"
set FADEC to "Full Authority Digital Engin Control"
set ADC to "Air Data Computer"
set ATC to "Air Trafic Control"
set leResultat1 to (FADEC as list)
set leResultat2 to (DME as list)
set leResultat3 to (ADC as list)
if "" is FADEC then
	set tempVar to display dialog leResultat1 buttons {"Nouvelles recherche", "Ok"}
else
	if "" is DME then
		set tempVar to display dialog leResultat2 buttons {"Nouvelles recherche", "Ok"}
	else
		if "" is ADC then
			set tempVar to display dialog leResultat3 buttons {"Nouvelles recherche", "Ok"}
		end if
	end if
end if
 
Bonjour,

Je suis nouveau dans le monde de la programmation et donc de l'Applescript.

J'apprend sur le tas avec des fichiers .pdf dédié à l'Applescript.

Je souhaite créer une petite application qui me donnerai la signification des acronymes que je rentre dans une boite de dialogue.
Je m'explique, je suis étudiant en aéronautique et le nombre d'acronyme qui existe est énorme.
Par exemple si je rentre dans la boite de dialogue FADEC je veux que l'application me dise ce que c'est à savoir : "Full Authority Digital Engin Control".
Bien sur, il faudra rentrer tous les acronymes dans le script auparavant.

J'ai un début mais j'ai un problème dans et je ne sais d'où cela vient. Si il y a des experts de la chose sur le forum qui se sentent de m'aide, je les remercie au préalable. :zen:
Bonjour

Un code pour te donner une idée.

Version simple, pour quelques dizaines.
Bloc de code:
-- Ligne à compléter dans le même style d'écriture
set maList to {"DME = Distance Measuring Equipment", "FADEC = Full Authority Digital Engin Control", "ADC = Air Data Computer", "ATC = Air Trafic Control"}

repeat -- Pour plusieurs recherches
	set temp to text returned of (display dialog "Quel acronyme ?" default answer "") -- Ne supporte pas les espaces
	
	repeat with i from 1 to (count items of maList) -- Recherche du texte sélectionné
		set {trouve, texteLue} to {"", item i of maList}
		
		if word 1 of texteLue is temp then
			set trouve to item i of maList
			exit repeat
		end if
	end repeat
	
	if trouve is not "" then
		display dialog trouve buttons {"Annuler", "Nouvelle recherche"} default button 2 with title "TROUVÉ"
	else
		display dialog temp & " non trouvé." buttons {"Annuler", "Nouvelle recherche"} default button 2 with title "INCONNU"
	end if
end repeat

-- Bouton ANNULER, pour pouvoir quitter la première boucle repeat
-- Minuscules où majuscules en écriture prisent en compte
Si plusieurs milliers, alors passer par un ordre alphabétique avant la recherche.

Ton code tell que tu l'écrivait, ça allais devenir un monstre.

Dit moi si ça fonctionne chez toi, écrit avec Léopard 10.5.8

Je n'utilise pas Lion.

Par curiosité combien tu as d'acronymes à gérer?

@+
 
Dernière édition:
Je ne sais pas il y en a surement 150 voir 200.

Merci pour le script, il marche nikel sous SL.

Cependant, j'aimerais comprendre entièrement le script ce qui n'est pas le cas pour le moment ^^
 
Je ne sais pas il y en a surement 150 voir 200.

Merci pour le script, il marche nikel sous SL.

Cependant, j'aimerais comprendre entièrement le script ce qui n'est pas le cas pour le moment ^^
Bonsoir

Avec des commentaires.
Bloc de code:
[color=#800000]--[/color][color=#FF8000] -- "DME = Distance Measuring Equipment" style d'écriture des items[/color]
[color=#0000FF]set[/color] [color=#3F7F00]maList[/color] [color=#0000FF]to[/color] [color=#800000]{"[/color]DME = Distance Measuring Equipment[color=#800000]",[/color] [color=#800000]"[/color]FADEC = Full Authority Digital Engin Control[color=#800000]",[/color] [color=#800000]"[/color]ADC = Air Data Computer[color=#800000]",[/color] [color=#800000]"[/color]ATC = Air Trafic Control[color=#800000]"}[/color]

[color=#0000FF]repeat[/color] [color=#800000]--[/color][color=#FF8000] Pour plusieurs recherches (si bouton Nouvelle recherche)[/color]
	[color=#0000FF]set[/color] [color=#3F7F00]temp[/color] [color=#0000FF]to[/color] [color=#0080FF]text returned[/color] [color=#0000FF]of[/color] [color=#800000]([/color][color=#0080FF]display dialog[/color] [color=#800000]"[/color]Quel acronyme ?[color=#800000]"[/color] [color=#0080FF]default answer[/color] [color=#800000]"")[/color] [color=#800000]--[/color][color=#7F007F] Acronyme à chercher (n[/color][color=#FF8000]e supporte pas les espaces[/color][color=#7F007F])[/color]
	
	[color=#0000FF]repeat[/color] [color=#0000FF]with[/color] [color=#3F7F00]i[/color] [color=#0000FF]from[/color] 1 [color=#0000FF]to[/color] [color=#800000]([/color][color=#0080FF]count[/color] [color=#0080FF]items[/color] [color=#0000FF]of[/color] [color=#3F7F00]maList[/color][color=#800000])[/color] [color=#800000]--[/color][color=#FF8000] Recherche du texte sélectionné[/color]
		[color=#800000]--[/color][color=#FF8000] (count items of maList) nombre d'items dans la variable maList entre guillemets[/color]
		
		[color=#0000FF]set[/color] [color=#3F7F00]trouve[/color] [color=#0000FF]to[/color] [color=#800000]""[/color] [color=#800000]--[/color][color=#FF8000] RAZ de la variable pour chaque lecture[/color]
		[color=#0000FF]set[/color] [color=#3F7F00]texteLue[/color] [color=#0000FF]to[/color] [color=#0080FF]item[/color] [color=#3F7F00]i[/color] [color=#0000FF]of[/color] [color=#3F7F00]maList[/color] [color=#800000]--[/color][color=#FF8000] Mémorise l'item lue entre guillements de la variable maList (i = N° de l'item à lire)[/color]
		
		[color=#0000FF]if[/color] [color=#0080FF]word[/color] 1 [color=#0000FF]of[/color] [color=#3F7F00]texteLue[/color] [color=#0000FF]is[/color] [color=#3F7F00]temp[/color] [color=#0000FF]then[/color] [color=#800000]--[/color][color=#FF8000] Contrôle du premier mot de l'item lue[/color]
			[color=#0000FF]set[/color] [color=#3F7F00]trouve[/color] [color=#0000FF]to[/color] [color=#0080FF]item[/color] [color=#3F7F00]i[/color] [color=#0000FF]of[/color] [color=#3F7F00]maList[/color] [color=#800000]--[/color][color=#FF8000] Si c'est le bon acronyme, le mémorise[/color]
			[color=#0000FF]exit[/color] [color=#0000FF]repeat[/color] [color=#800000]--[/color][color=#FF8000] Bon alors quitte la boucle repeat[/color]
		[color=#0000FF]end[/color] [color=#0000FF]if[/color]
	[color=#0000FF]end[/color] [color=#0000FF]repeat[/color] [color=#800000]--[/color][color=#FF8000] Sinon au suivant[/color]
	
	[color=#0000FF]if[/color] [color=#3F7F00]trouve[/color] [color=#0000FF]is[/color] [color=#0000FF]not[/color] [color=#800000]""[/color] [color=#0000FF]then[/color] [color=#800000]--[/color][color=#FF8000] Bon acronyme[/color]
		[color=#0080FF]display dialog[/color] [color=#3F7F00]trouve[/color] [color=#0080FF]buttons[/color] [color=#800000]{"[/color]Annuler[color=#800000]",[/color] [color=#800000]"[/color]Nouvelle recherche[color=#800000]"}[/color] [color=#0080FF]default button[/color] 2 [color=#0080FF]with title[/color] [color=#800000]"[/color]TROUVÉ[color=#800000]"[/color]
	[color=#0000FF]else[/color] [color=#800000]--[/color][color=#FF8000] Mauvais acronyme[/color]
		[color=#0080FF]display dialog[/color] [color=#3F7F00]temp[/color] [color=#800000]&[/color] [color=#800000]"[/color] non trouvé.[color=#800000]"[/color] [color=#0080FF]buttons[/color] [color=#800000]{"[/color]Annuler[color=#800000]",[/color] [color=#800000]"[/color]Nouvelle recherche[color=#800000]"}[/color] [color=#0080FF]default button[/color] 2 [color=#0080FF]with title[/color] [color=#800000]"[/color]INCONNU[color=#800000]"[/color]
	[color=#0000FF]end[/color] [color=#0000FF]if[/color]
[color=#0000FF]end[/color] [color=#0000FF]repeat[/color] [color=#800000]--[/color][color=#FF8000] Acronyme suivant, sinon bouton Annuler[/color]

[color=#800000]--[/color][color=#FF8000] Bouton ANNULER, pour pouvoir quitter la première boucle repeat[/color]
[color=#800000]--[/color][color=#FF8000] Minuscules où majuscules en écriture prisent en compte[/color]

Pour 150 à 200, ça marche pas trop mal.

Pratique quand on sait dés le départ le système qui va tester le code.

PS:
¬ = alt et L au clavier
Quand trop d'items dans une ligne pour rendre plus lisible, utilise ce caractère ¬ en bout de ligne (sauf à la dernière) et return
ça indique au code que toutes les lignes en sont une seule
Bloc de code:
[color=#0000FF]set[/color] [color=#3F7F00]maList[/color] [color=#0000FF]to[/color] [color=#800000]{"[/color]DME = Distance Measuring Equipment[color=#800000]",[/color] [color=#800000]¬[/color]
	[color=#800000]"[/color]FADEC = Full Authority Digital Engin Control[color=#800000]",[/color] [color=#800000]¬[/color]
	[color=#800000]"[/color]ADC = Air Data Computer[color=#800000]",[/color] [color=#800000]"[/color]ATC = Air Trafic Control[color=#800000]"}[/color][color=#7F007F]
[/color]

Cordialement

@+
 
Dernière édition:
Merci pour tout les commentaires :) Seulement il doit me manquer des notions parce que même avec je ne comprend pas tout enfin bon il faut que je m'entraine ça ne s'apprend surement pas en deux jours.

Au début, je pensais éditer une liste sous Numbers et créer le même genre de script mais effectuer la recherche dans cette liste

Bloc de code:
tell application "Number"
open file "Macintosh HD:Users:nicolas:Documents:report.number"
end tell
 
Merci pour tout les commentaires :) Seulement il doit me manquer des notions parce que même avec je ne comprend pas tout enfin bon il faut que je m'entraine ça ne s'apprend surement pas en deux jours.

Au début, je pensais éditer une liste sous Numbers et créer le même genre de script mais effectuer la recherche dans cette liste

Bloc de code:
tell application "Number"
open file "Macintosh HD:Users:nicolas:Documents:report.number"
end tell
Bonsoir

Ce qui serais pratique avec AppleScript, c'est d'utiliser un fichier texte (sans l'ouvrir) avec une définition par ligne.

Le code reste fixe, et le fichier serais modifiable à la demande (ajouts où retraits de données).
Il suffit alors d'ajouter un bouton au code pour ouvrir le fichier à modifier les données.

C'est le genre de code que tu recherche?

@+
 
On peut rechercher une définition dans un fichier text sans l'ouvrir ? c'est possible avec un fichier tableur ?
 
On peut rechercher une définition dans un fichier text sans l'ouvrir ? c'est possible avec un fichier tableur ?
Bonsoir

Lire un fichier texte (extension .txt) écrit avec TextEdit sans l'ouvrir, aucun problème avec AppleScript.
Il suffit de mémoriser dans une variable le contenu du fichier texte (sans ouvrir de fenêtre, donc sans lancer TextEdit).

Ça marche très bien chez moi avec le code cité ci-dessus, légèrement modifié.

Un bouton en plus dans le code pour pouvoir modifier le fichier texte sans avoir besoin d'aller le chercher (moi je le place dans le bundle de l'application pour être sur qu'il seras toujours disponible pour le code).

Défaut: faut toujours maintenir à jour ce fichier texte.

Un tableur, jamais testé.

Si tu ouvre la fenêtre avec tes données, à quoi est alors utile le code de recherche puisque la réponse est sous tes yeux.
@+
 
Dernière édition:
Par exemple si je rentre dans la boite de dialogue FADEC je veux que l'application me dise ce que c'est à savoir : "Full Authority Digital Engin Control".

/mode blague on

Demandes à Siri :)

/mode blague off
 
lol désolé mais qu'est ce que Siri ?

Nan effectivement l'intérêt d'ouvrir le fichier tableur est nul. C'était mon idée de départ sans connaitre vraiment ce que je pensais... enfin bon :)

Mais pouvoir rechercher dans les données du tableur sans l'ouvrir serai très intéressant.

Après je ne sais vraiment pas comment faire. Déjà que j'arrive pas à créer une rechercher dans une listes d'un script correctement alors je vois pas très bien comment faire.
 
lol désolé mais qu'est ce que Siri ?

Nan effectivement l'intérêt d'ouvrir le fichier tableur est nul. C'était mon idée de départ sans connaitre vraiment ce que je pensais... enfin bon :)

Mais pouvoir rechercher dans les données du tableur sans l'ouvrir serai très intéressant.

Après je ne sais vraiment pas comment faire. Déjà que j'arrive pas à créer une rechercher dans une listes d'un script correctement alors je vois pas très bien comment faire.
Bonsoir

Pour un fichier texte, aucun problème chez moi.

Tu recherche pour un tableur, alors la je ne donnerais aucune réponse, vue que je l'utilise rarement.

Je laisse la place aux autres pour te donner une bonne réponse.

Cordialement

@+
 
Bien encore merci beaucoup pour ton aide c'est sympa ;)