Code avancée AppleScript




Ce site est principalement dédié à l'AppleScript plus avancé. Pour des raisons de logique et parce que le site d'origine devenait assez grand, quelques-uns des messages que vous trouverez ici ont été déplacés à partir du site d'origine. Aussi sur ce site, je vais couvrir les questions qui sont pertinentes pour AppleScripting et des suggestions relatives à la 'Univers Mac »globale.

Choisissez dans la liste des dates

Sélection d'une date à partir d'une liste chronologique




Ce script compile une liste de dates (à partir de la date du jour) et les affiche dans une boîte de dialogue «liste de sélection»

La liste qui en résulte peut être utilisé avec FileMaker, comme dans ce cas, dans le cadre d'un script plus grande de fixer une date dans un livre de rendez-vous de la base de données. Après cette lecture, garder à l'esprit que le calcul des dates tourne autour de la valeur stockée dans la variable targetDate Dans ce script, donner de plus amples explications sur la façon dont le script fonctionne.

tell application "FileMaker Pro" activer En septembre la voix au texte séparateurs de AppleScript Septembre text item séparateurs de AppleScript pour "," Septembre dateResult à (date actuelle) DateIncrement 1er septembre Septembre DateList à {} Septembre targetDate jusqu'ici série de dateResult fin définit DateList à targetDate répéter 14 fois LongTarget septembre au (dateResult + 24 * 60 * 60 * dateIncrement) si dateIncrement = 14 puis SaveIncrement septembre au longTarget Septembre targetDate jusqu'ici série de longTarget Répétez sortie fin si Septembre targetDate jusqu'ici série de longTarget fin définit DateList à targetDate DateIncrement septembre au dateIncrement + 1 end repeat fin définit DateList pour "Autres données ..." NewAppointmentDate septembre au (choisir DateList prompt "Choisir une date pour le nouveau rendez-vous ou sélectionner" Autres données ... »ci-dessous:" éléments par défaut (point 1 du texte DateList) avec le titre "fixer la date de cette nomination:« nom du bouton OK "Sélectionner") sous forme de chaîne si newAppointmentDate = "Autres données ...", puis fenêtre d'affichage "Date Modifier» et targetDate & "'et cliquez sur' Select 'ou cliquez sur' Plus 'pour d'autres options à ce jour." Réponse des boutons par défaut targetDate {"Plus", "Select"} bouton par défaut 2 set {newAppointmentDate, GETMORE} pour le résultat sous forme de liste si GETMORE = "Plus" puis DateIncrement 1er septembre Septembre DateList à {} répéter 14 fois Septembre longTarget à (saveIncrement + 24 * 60 * 60 * dateIncrement) Septembre targetDate jusqu'ici série de longTarget fin définit DateList à targetDate DateIncrement septembre au dateIncrement + 1 end repeat NewAppointmentDate septembre au (choisir DateList prompt "Sélectionnez une date pour le nouveau rendez-vous:" avec le titre "Régler la date du rendez-vous:" OK nom du bouton "Select") sous forme de chaîne fin si fin si Septembre text item séparateurs de AppleScript à saveDelimiters TargetDate septembre au newAppointmentDate end tell

Comme mentionné ci-dessus, la clé pour les calculs de la date car ce est le variabletargetDate, qui contient la valeur de la date courante (ce est à dire la partie de la date de la chaîne). Cette variable devient alors la première valeur dans la «choisir dans la liste».

Par la suite, les cycles de verrouillage répètent à dateIncrement fois (ou 14 fois), avec dateResult la valeur de la date actuelle. Cela nous amène à augmenter dates répétées supplémentaires dont nous avons besoin dans cette expression:

LongTarget septembre au (dateResult + 24 * 60 * 60 * dateIncrement)

Cela explique fondamentalement tout. La vraie partie importante de ce est la formule utilisée:

dateResult + 24 * 60 * 60 * dateIncrement

Si vous voulez calculer une date d'une semaine à partir de maintenant, vous devez remplacer la variable dateIncrement avec le numéro 7, deux semaines à partir de maintenant, le nombre 14, et ainsi de suite.

Nouvelle adresse dans le carnet d'adresse

Ce est un script pour créer une entrée entièrement du carnet d'adresses par un script utilisant la «boîte de l'affichage de la requête. Il illustre assez bien la syntaxe AppleScript pour les objets dans le carnet d'adresses.
La première partie crée une entrée avec un nom et définir une variable sur une référence au nouveau point pour une utilisation dans la deuxième partie, qui fixe les autres valeurs d'entrée;

tell application "Carnet d'adresses" activer Septembre texte firstName retournée de (display dialog "Entrez le nom pour le nouveau contact:" réponse par défaut "" avec l'icône 1 Touches {"" OK} par défaut 1) Septembre texte nomFamille retournée de (display dialog "Entrez nom pour le nouveau contact:" réponse par défaut "" avec l'icône 1 touches {"" OK} bouton par défaut 1) Septembre theEntry faire nouvelle personne avec des propriétés {Nom: Prénom, nom de famille: lastName} StreetAddress septembre au texte renvoyé de (display dialog "Introduire la nouvelle adresse de contact:" réponse par défaut "" avec l'icône 1 touches {"OK"} par défaut des boutons 1) CityName septembre au texte renvoyé de (display dialog "Entrez la ville de contact:" réponse par défaut "" avec l'icône 1 touches {"OK"} par défaut des boutons 1) Septembre StateName au texte retourné de (display dialog "Entrez État:" réponse par défaut "" avec l'icône 1 touches {"OK"} par défaut des boutons 1) Septembre theZip au texte retourné de (display dialog "Entrez le code postal:" réponse par défaut "" avec l'icône 1 touches {"OK"} par défaut des boutons 1) Thephone septembre au texte renvoyé de (display dialog "Entrez le numéro de téléphone:" réponse par défaut "" avec l'icône 1 touches {"" OK} bouton par défaut 1) Septembre theEmail au texte retourné de (display dialog "Entrez l'adresse e-mail (si applicable):" réponse par défaut "" avec l'icône 1 touches {"OK"} par défaut des boutons 1) Septembre Theurl au texte retourné du (dialogue d'affichage "Saisissez l'URL du contact:"http: // www." Réponse par défaut avec l'icône 1 touches {"OK"} par défaut des boutons 1) dire theEntry faire de la nouvelle adresse afin de répondre avec des propriétés {label: "Accueil", rue: streetAddress, ville: nom de la ville, de l'État: StateName, zip: theZip} (Voir le nouveau téléphone pour les téléphones avec des propriétés {label: "Accueil", valeur: thephone}) faire de nouveaux e-mail après e-mail avec des propriétés {label: "Home", valeur: theEmail} faire la nouvelle URL à la fin de l'URL avec des propriétés {label: "travail", valeur: Theurl} end tell sauver end tell

Quelques notes sur le script ci-dessus:

Ce script crée la ligne de saisie, met son nom et crée une variable de référence pour la nouvelle carte:

Septembre theEntry faire nouvelle personne avec des propriétés {Nom: Prénom, nom de famille: lastName}

Après avoir rempli les variables qui contiennent les données d'adresse, la prochaine ligne du script (après (dire theEntry) remplit toutes les adresses de données:

dire theEntry créer une nouvelle adresse pour répondre aux propriétés {label: "Accueil", rue: streetAddress, ville: nom de la ville, de l'État: StateName, zip: theZip}

Enfin, les données sont saisies pour le site numéro de téléphone, e-mail et web, d'une manière similaire:

rendre le nouveau téléphone pour les téléphones avec des propriétés {label: "Accueil", valeur: thephone}

Commentaires, suggestions ou bug? Se il vous plaît laisser un commentaire ci-dessous.

mois de conversion de date dans un format différent

Comment faire pour convertir Mois Nom à ses données numériques et vice versa Cela peut être très utile lorsque, par exemple, vous avez la base de données dans laquelle vous devez afficher la date dans une forme longue, plus convivial, et dans un autre, où vous voulez , une date plus courte condensé pour un rapport de synthèse sous forme de tableau que vous imprimez à une date ultérieure. Je tiens également à montrer les bases de la fonction de gestionnaires de sorte que lorsque vous avez des tâches répétitives qui doivent être effectuées fréquemment, peut être appelé à partir de votre script principal 'sur la volée'.

Cela devient le nom du mois pour ses chiffres:

ConvertMonth septembre au texte renvoyé de (display dialog "Entrez un mois pour convertir les données numériques:" réponse par défaut "" touches {"Annuler", "Set"} bouton par défaut 2) Septembre monthText à convertMonth Septembre convertMonth à (convertDate1 (convertMonth)) fenêtre d'affichage «conversion numérique pour le mois de" & monthText & ":" & 1 convertMonth avec l'icône des boutons {"OK"} par défaut des boutons 1 dommages après 6

La fonction de gestionnaire appelé par le script principal (voir «mis à convertMonth (convertDate1 (convertMonth)) 'ci-dessus):

sur convertDate1 (themonth) Septembre monthList à {Janvier, Février, Mars, Avril, Mai, Juin, Juillet, Août, Septembre, Octobre, Novembre, Décembre} répéter avec 1-12 si themonth = ((La Voix de monthList) comme une chaîne) puis MonthNumber septembre au (texte de -2 à -1 ("0" & ​​i)) Répétez sortie fin si end repeat retourner MonthNumber fin convertDate1

Cela transforme un mois de numéro à son nom réel de données:

Septembre convertNumber au texte retourné de (display dialog "Entrez un nombre de '01 à 12 'pour la conversion dans le nom du mois:" la réponse des boutons par défaut "01" {"Annuler", "Set"} bouton par défaut 2 ) NumberText septembre au (convertNumber sous forme de chaîne) Septembre convertNumber à (convertDate2 (convertNumber)) fenêtre d'affichage "de mois de conversion pour un certain nombre» et numberText & ":" & 1 convertNumber avec l'icône des boutons {"OK"} par défaut des boutons 1 dommages après 6

La fonction de gestionnaire appelé par le script principal (voir "réglé sur convertNumber (convertDate2 (convertNumber))" ci-dessus):

sur convertDate2 (thenumber) Septembre à thenumber (thenumber sous forme de texte) if (thenumber du texte -2 = "0") thenumber puis réglez (texte thenumber de -1) Liste de numéros de septembre {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12 "} Septembre monthList à {"Janvier", "Février", "Mars", "Avril", "peut", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre "} répéter avec 1-12 si leNombre = (élément de texte de la liste de numéros), puis Septembre nomMois à (élément de texte de la monthList) Répétez sortie fin si end repeat retourner nomMois fin convertDate2

Comment et pourquoi: Types dossiers de force et de listes de données

Quand je étais nouveau script, je ai eu beaucoup de problèmes avec les forçant enregistrement dans les listes, et vice versa. Ce ne était pas seulement la coercition qui était tellement difficile, il faisait les données résultant en une forme utilisable. Aussi, je ne ai pas vu aucun avantage réel à le faire.

Ici, je vais essayer d'expliquer à mes lecteurs, à travers une série d'exemples de la façon de faire ces types de données dans l'autre et la façon de transformer cette information dans une forme appropriée pour une manipulation supplémentaire. Je espère que vous venez loin de cela avec un sens de l'utilité de ces contraintes.

Gardez à l'esprit, que lorsque je utilise - résultat -> ... etc .., qui indique le résultat de l'exécution d'une ligne de script.

Notez que, en raison de certains problèmes de mise en forme, si vous voulez couper et coller tout cela pour un usage personnel, vous devez convertir les citations de citations de sorte que l'éditeur de script sera en mesure de combler.

Premièrement, la déclaration:

Employé Septembre {nom: "Ambre Clark", adresse: "1156 Bendelow Lane", téléphone: "1-456-228-4338"} -> Résultat {name: "Ambre Clark", adresse: "1156 Bendelow Lane", téléphone: "1-456-228-4338"}

Ce est la syntaxe de réglage simple. Rien d'extraordinaire. Il attribue essentiellement un identifiant d'une valeur donnée, similaire à lorsque vous affectez une valeur à une variable.

L'utilisation de ce que nous pouvons dire:

Dépendante Téléphone EmployeePhone septembre à (téléphone dépendant) -> Résultat, dans les deux cas, "1-456-228-4338"

Dans ce cas également, rien ne transcendantale. Si nous voulons extraire des valeurs sans leurs identifiants correspondants nous disons simplement:

dépendante liste -> Résultat {"Ambre Clark", "1156 Bendelow Lane", "1-456-228-4338

Jusqu'à présent, nous avons établi que nous pouvons aller et venir assez facilement et extraire des éléments spécifiques.

Utilisation de la 'fenêtre de visualisation' build, vous pouvez définir un certain nombre de dossiers pour un certain nombre d'employés, à savoir: mettre Employee1, réglez Employee2 etc.

Jetez un oeil à cet exemple:

EmployeeName septembre au texte renvoyé de (display dialog "Entrez le nom de l'employé" réponse par défaut "" avec l'icône 1) EmployeeAddress septembre au texte renvoyé du (dialogue d'affichage "Saisissez l'employé d'adresse" réponse par défaut "" avec l'icône 1) EmployeePhone septembre au texte renvoyé de (display dialog "Entrez employé numéro de téléphone" de réponse par défaut "" avec l'icône 1) Employé Septembre {nom: employeeName, adresse: EmployeeAddress, téléphone: employeePhone} -> Résultat Retour: {name: "Ambre Clark", adresse: "1156 Bendelow Lane", téléphone: "1-456-228-4338"} est entré --where "Ambre Clark", "1156 Bendelow Lane" et "1-456-228-4338"

Si nous voulons utiliser les données à d'autres manipulations, nous assignons l'information désirée d'une variable.

Ce magasin une sélection 'Choisissez dans la liste' dans la variable 'employeeChoice', mais si nous essayons de l'utiliser comme données brutes, AppleScript enverra une erreur qui ne peut pas être traité dans sa forme actuelle, car il est toujours considéré comme un élément de la liste.

ListeEmployes à Septembre (selon la façon dont la liste) -> Résultat {"Ambre Clark", "1156 Bendelow Lane", "1-456-228-4338"} EmployeeChoice septembre au (choisir ListeEmployes prompt "Choisissez entre les données pour" & employeeName & ":") -> Résultat {"Ambre Clark"}

Toutefois, si elle se termine avec l'affirmation «comme une chaîne" comme ci-dessous, est forcé dans une forme qui peut être utilisé pour la manipulation de texte (en d'autres termes, sans les guillemets):

EmployeeChoices septembre à (choisir ListeEmployes prompt "Choisir entre les données pour" & employeeName & ":") sous forme de chaîne -> Résultat "Ambre Clark"

Vous pouvez facilement voir comment cela peut être utile lorsque, par exemple, vous voulez forcer une chaîne à un alias ou un alias dans un chemin POSIX.

Utilisation des dates et utiliser des opérateurs mathématiques

Une utilisation inattendue des opérateurs mineures et majeures Un des aspects les plus curieux d'AppleScript qui scripteurs inexpérimentés ne sont pas conscients de (et des experts de script négligent souvent), ce est que vous pouvez utiliser plus [>] opérateur et moins de [<] opérateur dates pour déterminer, par exemple, que deux dates apparaît en premier dans l'année civile.

Ceci, bien sûr, contredit tout ce que nous avons fait en classe de mathématiques à l'école, mais en réalité, est une capacité-bullt dans le langage AppleScript.

Si vous exécutez ce premier script dans l'éditeur de script, vous pouvez voir que AppleScript peut comprendre l'utilisation de gros et de détail. Ce script force le défaut ou le texte entré au format de la date avec le temps additionnel et renvoie un résultat qui reflète où l'entrée se produit logiquement avant l'autre:

Septembre targetDate jusqu'ici chaîne (date actuelle) Septembre targetDate au texte retourné de (display dialog "Entrez une date:« touches réponse par défaut de targetDate {"OK"} bouton par défaut 1) Datetime1 Septembre aujourd'hui (targetDate & "1:00:00") Datetime2 Septembre aujourd'hui (targetDate & ":" & "7:00:00") Datetext Septembre jusqu'ici série de datetime1 Septembre time1 moment chaîne datetime1 Septembre time2 moment chaîne datetime2 DateTimeString1 septembre au datetime1 que chaîne DateTimeString2 septembre au datetime2 que chaîne if (datetime1> datetime2) puis affichage de la fenêtre (datetext et le dos et le dos et time1 et "se produit après" & maintenant2 & ".") else if (datetime1 Donc, cet exemple qui utilise seulement un peu 'script FileMaker début. Il utilise le «existe» mot-clé afin de déterminer si la date peut être trouvée avant et donc est plus rapide que si vous avez essayé cela en utilisant un cycle de répétition. En outre, depuis la pré-qualification de l'émission instruction conditionnelle, il n'y a pas besoin d'un gestionnaire d'erreur, même si je inclus une ici, parce que ce est toujours une bonne pratique, car il peut toujours y avoir quelque circonstance que vous ne pouvez pas vous attendre. (FileMaker est en gras):

Loquet fenêtre
Exécuter un AppleScript [voir ci-dessous]

tell application "FileMaker Pro" activer dire une base de données montrer tous les records Trier par {0 champ Layout "sortDate"} dans l'ordre croissant - 'SortDate' est un champ défini comme un type de date Septembre targetRecord à (obtenir ID de l'enregistrement en cours) expérimenter Septembre targetCalcDate à (date actuelle) Septembre targetFound vrai Recherche de photosDate de Septembre chaîne jusqu'ici (targetCalcDate) (se il ya certains dossiers où Recherche de photosDate est dans la cellule "AppointmentsDate"), puis - 'AppointmentsDate' est un champ de texte qui contient l'enregistrement de longue date de chaque show (où chaque enregistrement Recherche de photosDate est dans la cellule "AppointmentsDate") autre Septembre targetFound fausse fin si si dialogue "Le \ data" targetFound = false afficher puis "Recherche de photosDate & &" \ "n'a pas été trouvé!" 0 avec l'icône des boutons {"OK"} par défaut des boutons 1 après avoir cédé 10 en cas d'erreur errorMsg afficher le errorMsg montrer tous les records Trier par {0 champ Layout "sortDate"} dans l'ordre croissant Septembre targetRecord à (obtenir ID de l'enregistrement en cours) end try Septembre targetRecord à (obtenir ID de l'enregistrement en cours) montrer tous les records Trier par {0 champ Layout "sortDate"} dans l'ordre croissant aller à enregistrer ID targetRecord end tell end tell

Extraction du texte en offset et d'Inversion vs délimiteurs de texte

Deux méthodes différentes Il ya des moments où vous voulez extraire une partie d'une chaîne de texte à l'autre dans un but précis. Il ya deux méthodes de base et chacun a ses avantages et inconvénients. Nous allons commencer avec une combinaison de compensation et inverser pour supprimer le suffixe "seattleSunset.jpg":

Septembre jpgFile à des personnages de "seattleSunset.jpg"

Ceci nous donne les caractères en liste: {"s", "e", "a", "t", "t", "s", "e", "S", "u", "n", "s", "e", "t", ".", "j", "p", "g"}

jpgFile en Septembre (contrairement jpgFile) sous forme de chaîne -> Résultat: "gpj.tesnuSelttaes"

Ou nous pouvons combiner les déclarations dans un:

jpgFile en Septembre (contrairement aux personnages de "seattleSunset.jpg») comme chaîne -> Résultat: "gpj.tesnuSelttaes"

Ensuite, nous extrayons le nom du fichier sans l'sufffix:

Septembre periodDelimiter pour compenser "." dans jpgFile Septembre jpgFile au texte (periodDelimiter + 1) -1 à jpgFile -> Résultat: "tesnuSelttaes" Septembre text item séparateurs de AppleScript pour ""

Nous devons rétablir les séparateurs d'éléments vides pour que cela fonctionne correctement.

jpgFile en Septembre (de jpgFile caractère contraire) sous forme de chaîne

Après la restauration de la voix des séparateurs, nous utilisons la même syntaxe que ci-dessus.

Tout d'abord, de rappeler que ce qui est entre parenthèses est effectuée avant, jpgFile est forcé à la liste forme et converti dans l'ordre inverse.

Puis est forcé dans une chaîne: "seattleSunset"

Si nous commençons avec l'ensemble jpgFile à des personnages de "seattleSunset.jpeg« nous obtenons toujours le résultat: "seattleSunset"

Notez que nous pourrions définir les délimiteurs texte de menu à "." pour obtenir le même résultat:

Septembre text item séparateurs de AppleScript pour "." Septembre jpgFile texte à l'étape 1 de «seattleSunset." -> Résultat: "seattleSunset"

Le problème avec cette méthode est que si nous avons quelque chose comme "http://www.scriptsforapple.com/", le résultat est: "http: // www", qui ne est probablement pas le résultat que nous voulons. La version originale, mais elle nous donne "http: //www.scriptsforapple" qui est utile si nous voulons changer ".com /" a ".org /":

Septembre text item séparateurs de AppleScript pour "." Septembre Theurl à "http://www.scriptsforapple.com/" Septembre text item séparateurs de AppleScript pour "" TrimURL septembre au (Theurl de caractère contraire) sous forme de chaîne Septembre periodDelimiter pour compenser "." dans trimURL TrimURL septembre au texte (periodDelimiter + 1) -1 à trimURL Septembre trimURL à (de trimURL caractère contraire) sous forme de chaîne Septembre Theurl à trimURL et «.org /" -> "Http://www.scriptsforapple.org/"

Le point ici est que si vous utilisez cette méthode, vous pouvez obtenir le résultat correct pour beaucoup, sinon la plupart, des cas que l'on rencontre. Ce ne est pas de dire qu'il ya des moments lorsque vous utilisez seulement délimiteurs texte d'article ne sera pas la bonne façon de faire en fonction de la situation.

Travailler avec des dates dans AppleScript

Si vous avez déjà travaillé avec la coercition et la manipulation de données dans AppleScript, vous savez comment il peut être frustrant, de quelque chose d'aussi simple que d'essayer de forcer en texte de sorte qu'il peut être affiché dans une boîte de dialogue, pour essayer de le convertir en un autre format jour; vous avez une chose simple dans la syntaxe, qui continue de provoquer des erreurs et vous ne pouvez pas comprendre!

Ici, je vais essayer de vous aider à travers quelques-unes des frustrations les plus courantes rencontrées. Tout d'abord, une chose que je ai trouvé très utile dans mon travail spécifique, un script qui vérifie si une date est valide en premier lieu. Ce est vraiment très simple, et est basé sur des messages d'erreur AppleScript.

La seconde portera sur deux aspects de la contrainte: 1) Conversion une date Date de format de texte, puis 2) pour déterminer une date ultérieure (1 semaine puis, résultat 1 mois, etc.) à la date indiquée. Ceci est particulièrement utile dans la base de données lorsque vous souhaitez déterminer un futur rendez-vous pour un client, quand il doit être programmé dans un intervalle régulier donné.

Tout d'abord, la validation d'une certaine date. Gardez à l'esprit que l'obtention de la date actuelle sera également inclure le temps de la journée, qui peut ne pas être utile pour ce que vous voulez faire. Exécuter ce dans l'éditeur de script:

Septembre dateRecord à (date actuelle) defaultDate en Septembre (série date de dateRecord) expérimenter Septembre apptDate au texte retourné de (display dialog "Entrez une date:« touches réponse par défaut defaultDate "Set" bouton par défaut 1) Datetext septembre au apptDate sous forme de texte Septembre TestDate jusqu'ici chaîne (date apptDate) sous forme de texte datetext sinon égale à TestDate puis erreur --Si vous entrez une date non valide, le dialogue suivant est interrompu et active l'avis d'erreur ci-dessous. afficher le datetext & "est une date valide." avec le bouton icône bouton par défaut «OK» 1 1 en cas d'erreur Septembre alertText à "Il était une erreur!" Estimations de MessageText septembre et datetext et devis et "est une date non valide." messageText d'affichage remarquent alertText signalisation comme des boutons d'alarme "OK" par défaut 1 après avoir cédé 15 reviens end try

Maintenant la deuxième partie, qui est utilisé ici dans une base de données FileMaker et est un peu plus complexe, mais une fois que vous comprenez comment cela fonctionne, peut être utilisé avec d'autres types de formats de bases de données qui prennent en charge AppleScript.

Comme le scénario ci-dessus, commencer par obtenir la date courante et forcer le résultat au moins pour une autre manipulation. Exécuter ce dans l'éditeur de script. Le résultat se affiche dans son volet de résultats:

Septembre text item séparateurs de AppleScript pour "," Septembre dateResult à (date actuelle) comparisonDate en Septembre (série date de dateResult) Bouton Septembre calcBoolean retourné de (fenetre affichage "Date de déterminer le prochain rendez-vous?" Avec l'icône 1 touches {"Non", "Oui"} bouton par défaut 2) si calcBoolean = "Oui" Septembre text item séparateurs de AppleScript pour "@"

Cette ligne suivante serait utilisée avec FileMaker, sinon quelque chose comme la ligne de code qui suit cette ligne serait bien construire, au cas où vous voulez tester cela sur votre système:

Septembre prevAppointment à "Saturday, 7th Novembre 2009, Ã 08h00 - voir Joe Palmer sur les spécifications sur le prochain contrat" Septembre prevReference à (texte l'article 1 de prevAppointment) Septembre dateResult loin prevReference Septembre ScheduleInterval à (choisir dans la liste {"semaine 1", "2 semaines", "un mois"} prompt "Intervalle de planification») sous forme de texte si ScheduleInterval = "1 semaine", puis DateResult septembre au (dateResult + 24 * 60 * 60 * 7) d'autre si ScheduleInterval = "deux semaines", puis DateResult septembre au (dateResult + 24 * 60 * 60 * 14) d'autre si ScheduleInterval = "un mois", puis DateResult septembre au (dateResult + 24 * 60 * 60 * 28) fin si targetDate en Septembre (série date de dateResult) d'autre si calcBoolean = "Non", puis TargetDate septembre au comparisonDate fin si

Questions ou commentaires? Se il vous plaît aller à 'commentaires, des suggestions ou des bugs? ci-dessous ou me contacter au: hyperscripter@gmail.com

Nouvelle conception de documents avec AppleWorks 6

Les bases de la création d'un document de dessin avec AppleWorks 6 sont semblables à ceux pour créer un document texte

Le script ci-dessous, bien nommé "Graphics Hodgepodge ', montre une variété d'objets graphiques qui peuvent être créés et certaines des propriétés qui peuvent être définies avec un script. Il ya beaucoup de détails dans ce script, de sorte que vous ne vont pas dans tous. La lecture du script devrait être une explication suffisante pour la plupart de ce qui sera en mesure d'utiliser:

propriétés cyan: {0, 65 534, 65 534} propriétés jaunes {65534, 65534, 0} immobilier rouge {65534, 0, 0} bleu de propriété: {0, 0, 65534} Propriété violet {55000, 0, 65534} tell application "AppleWorks 6" faire nouveau document sur l'avant avec des propriétés {Type de document: dessin document, le nom: "Hodgepodge graphique"} dire le document "Graphics Hodgepodge" FirstObject septembre à (faire nouveau front ovale remplir avec des propriétés {color: cyan}) ensemble {Xgauche, ytop, Xdroite, ybottom} des limites firstObject faire nouveau rectangle à la fin avec des propriétés de remplissage {color: jaune, limites: {0, 250, 800, 500}, motif de remplissage: 18} faire le nouveau rectangle arrondi à la fin avec des propriétés {remplissage dégradé: 8, limites {Xgauche + 0, + 40 ytop, Xdroite + 400, + 40 ybottom}, la couleur de remplissage: blue} faire nouveau polygone à la fin avec des propriétés de remplissage {color: red, motif de remplissage: 16} avec les données {{Xgauche + 60, + 60 ytop}, {Xgauche + 60, + ytop 160}, {Xgauche + 160, + ytop 160}, {Xgauche + 60, + 60 ytop}} Septembre lastOval à (faire nouveau front ovale remplir avec des propriétés {color: red}) sélectionnez lastOval définir les propriétés de limites firstObject à {{Xgauche + 0, + 40 ytop, Xdroite + 400, + 40 ybottom}} définir les propriétés de firstObject {remplissage couleur: violet, motif de remplissage: 64} end tell end tell

Avant d'utiliser des objets pour stocker des informations que nous allons utiliser la couleur RGB (économiser quelques secondes). Ensuite, nous disons AppleWorks pour créer un document de dessin pour nous:

faire nouveau document sur l'avant avec des propriétés {Type de document: dessin document, le nom: "Hodgepodge graphique"}

Dans la partie suivante, nous dirigeons déclarations à notre nouveau document "Hodgepodge graphique":

FirstObject septembre à (faire nouveau front ovale remplir avec des propriétés {color: cyan}) ensemble {Xgauche, ytop, Xdroite, ybottom} des limites firstObject

Cela crée notre premier objet, un ovale, avec les variables Xgauche, ytop, Xdroite, ybottom pour la taille des objets par défaut qui seront utilisés plus tard et assigne une référence à l'objet (également nécessaire plus tard) pour la variable firstObject.

Le reste du script est explique assez bien. Pour créer un nouvel objet en utilisant la syntaxe: faire de nouveaux objectType où objectType peut être ovale (également utilisé pour cercle), un rectangle (également utilisé pour la place), rectangle et polygone arrondi. Utilisation limites de paramètres pour déterminer la taille de l'objet.

Vous utilisez remplissage gradient et de remplir motif avec une référence à toute la pente (il ya 32) et modèles (je suis 64) disponibles à partir de leur palette.

Entre autres choses, pour d'autres types de documents AppleWorks, le type de document peut être l'un des éléments suivants:

document de conception, document texte, feuille de calcul, le document de base de données, documents peinture, le dossier de présentation

Pour plus d'AppleScript avec AppleWorks 6, aller à: AppleScript gratuit pour AppleWorks 6

Préférences un accès universel: Activer GUI Scripting

Dans le menu Pomme, sélectionnez «Préférences Système ...», puis cliquez sur "l'accès universel"

Pour activer GUI Scripting, assurez-vous que la case «Activer l'accès pour les périphériques d'aide" est cochée.

formatage et l'édition des objets texte avec Word 2008

Alors que Microsoft a son propre langage de script (Visual Basic pour Applications ou «VBA») de faire tout (la plupart) des mêmes choses, comme présenté ici, est plutôt maladroit et difficile à utiliser que la syntaxe plus naturelle d'AppleScript.

Ici, nous allons voir certains des scripts requis pour Word 2008 dans un document unique appelé «MyText.doc '.

Avant de créer et ouvrir un nouveau document:

tell application "Microsoft Word" CreateDoc septembre à faire nouveau document Définir le nom des objets de createDoc de texte de l'objet à "Lucida Grande" jeu de la taille des objets d'un objet texte createDoc à "14" enregistrer sous le nom de fichier createDoc "MyText.doc" createDoc ouverte end tell

'Set createDoc faire nouveau document' crée un nouveau document et insérer une référence au fichier dans le nouveau document dans la variable createDoc.

Une fois il est fait référence au document, vous pouvez diriger les déclarations individuelles à createDoc de référence de nom ou dans un bloc tell:

dire createDoc ... end tell

Maintenant, regardons quelques façons dont vous pouvez modifier le texte du document car ce texte initial:

Ce était un jour de tempête, que je ai entrepris mon voyage à apprendre à écrire mon premier AppleScript avec Microsoft Word 2008.

dire createDoc sélectionnez le mot 4 du createDoc - Ou sélectionner le mot 4 du document actuel Septembre sélection d'objets de caractères gras à true contenaient des objets texte mis en sélection pour «soleil» end tell

Il en résulte:

Il a été un ensoleillé jours que je ai entrepris mon voyage à apprendre à écrire mon premier AppleScript avec Microsoft Word 2008.

Le quatrième mot est sélectionné, son style de police mis en gras, et son contenu modifié pour «soleil».
Notez que les changements de style de texte sélectionné nécessite l'utilisation de l'expression «sous réserve de caractère» et remplacer le contenu avec le mot «soleil» vous devez utiliser 'objet texte »

Puis ajouter du texte à la fin du document à l'aide d'une fenêtre de saisie de texte:

Septembre appendText au texte retourné de (display dialog "Entrez le texte à ajouter à la fin de ce document:" réponse par défaut "" touches {"Annuler", "Enter"} bouton par défaut 2) Septembre appendText à (aller-retour et appendText) insérer du texte à la fin appendText objet texte du document actif

Poster à plusieurs destinataires avec joint

Un bon début pour se familiariser avec la syntaxe des scripts Mail. Ce est un script pour envoyer du courrier par Apple App mail et éventuellement vers des destinations multiples et ajouter une pièce jointe à l'email.

activer expérimenter end tell end tell reviens end try end tell

(0)
(0)

Commentaires - 0

Sans commentaires

Ajouter un commentaire

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Caractères restants: 3000
captcha