IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AppleScript Discussion :

Initialiser rapidement une suite de variables [AppleScript]


Sujet :

AppleScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Avril 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2013
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Initialiser rapidement une suite de variables
    Je cherche une méthode Applescript permettant d'utiliser moins de caractères pour remplacer ce bout de script initialisant 25 variables, car je m'approche des 30.000 caractères maxi utilisables dans un AppleScript natif lancé dans FileMaker Pro (le script pilote l'application "Contacts" pour créer des contacts et des groupes de contacts à partir de champs FMP).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    copy "" to Group1
    copy "" to Group2
    copy "" to Group3
    copy "" to Group4
    copy "" to Group5
    copy "" to Group6
    copy "" to Group7
    copy "" to Group8
    copy "" to Group9
    copy "" to Group10
    copy "" to Group11
    copy "" to Group12
    copy "" to Group13
    copy "" to Group14
    copy "" to Group15
    copy "" to Group16
    copy "" to Group17
    copy "" to Group18
    copy "" to Group19
    copy "" to Group20
    copy "" to Group21
    copy "" to Group22
    copy "" to Group23
    copy "" to Group24
    copy "" to Group25
    Merci d'avance pour votre précieuse aide. Cordialement, ekami.

  2. #2
    Membre éprouvé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    603
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 603
    Points : 1 240
    Points
    1 240
    Par défaut Liste de variable
    Bonjour Ekami,
    Ce que tu souhaites faire est d'utiliser un tableau.
    La notion de tableau (Array) n'existe pas en tant que telle dans Applescript, mais il y a une autre notion au moins aussi puissante : les listes
    En fait, il y a des débats pour savoir si une liste n'est pas implémentée en interne par Applescript comme un tableau ! c'est dire si ces notions sont proches.

    Dans ton cas, tu as un tableau de 25 variables. Il faut donc initialiser une liste de 25 items. On peut soit le faire en une seule ligne, soit avec une boucle. (pour 25, on peut encore le faire sans boucle !)

    Ensuite tu pourras, dans ton code, lire ou affecter chaque valeur en faisant référence à son indice.
    Enfin je précise que les listes, bien utilisées permettent de réduire considérablement la taille des codes et leur lisibilité.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    -- initialisation de la variable Liste par 25 valeurs vides
    set liste to {"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""}
     
    -- assignation de la variable d'indice I avec "toto"
    Set Indice to 18
    set item Indice of liste to "toto"
     
    -- lecture de la variable d'indice I
    Set Ma_Valeur to item I of Liste
     
    -- note : tout les types de boucles fonctionnent sur I
    Enfin, je suis surpris : 30 000 caractères pour ton script !! Est-ce que ton code est optimisé ? Utilises tu des librairies de scripts ? des sous-routine ?
    avec des liste à indices, tu devrais aussi beaucoup économiser de lignes car tu n'as plus a indiquer "GroupXX" en dur, mais en variable indicée.

    Cordialement

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Avril 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2013
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Résolu
    Bonjour PBELL,
    Ce que tu proposes (faire un tableau) est une bonne idée, mais ta proposition de script ne fait pas ce que je veux.
    J'ai finalement trouvé : AppleScript peut initialiser une série de variables, pour peu qu'on le demande correctement sous cette forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set {Group1, Group2} to {"1", "2"}
    --
    Mon AS dans FileMaker est long, car il fait vraiment bcp de choses, mais avec cette méthode je réduis sa longueur à peu de frais.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion d'une suite de variables
    Par Gaetan_ dans le forum Langage
    Réponses: 24
    Dernier message: 04/08/2011, 13h08
  2. Initialisation d'une variable Object
    Par bobic dans le forum Langage
    Réponses: 2
    Dernier message: 08/09/2006, 18h21
  3. Vérifier l'initialisation d'une variable
    Par homeostasie dans le forum C
    Réponses: 11
    Dernier message: 04/08/2006, 19h05
  4. initialisation d'une variable DATE
    Par olivll dans le forum Access
    Réponses: 4
    Dernier message: 25/07/2006, 12h57
  5. Réponses: 1
    Dernier message: 14/06/2006, 18h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo