Satimage
Tutoriel sur les plists
Accueil Documentation Smile XML et property lists Tutoriel sur les plists  
Ce bref tutoriel présente les principales commandes de la suite plist sous la forme d'exemples simples qui utilisent un fichier local sur votre machine. Nous allons utiliser un fichier de préférences de l'application Carnet d'Adresses.

Vous pouvez lire le tutoriel ci-dessous, et à tout moment copier les scripts sur votre machine pour les tester. Pour importer les scripts, veuillez cliquer sur le lien suivant :

Ce tutoriel a pour sujet l'affichage d'un message destiné à l'utilisateur, personnalisé avec les informations que l'utilisateur a entré dans le Carnet d'Adresses. Ces informations sont stockées dans un fichier p-list dans le dossier Preferences.

Commençons par ouvrir la p-list.
set the_folder to (path to preferences from user domain) as text
set the_file to (the_folder & "AddressBookMe.plist") as alias
set the_plist to PlistOpen the_file
Le résultat renvoyé dans la Console (quelque chose comme «data CFob0000000100000000») est une référence "opaque". Si vous voulez voir ce qu'il contient, PlistGetXML renverra une représentation en texte. Nous travaillons ici avec une toute petite p-list :
PlistGetXML the_plist
  --  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE plist PUBLIC "-//Apple Computer etc.
Lorsque vous ouvrez une p-list, l'élément racine peut être de n'importe quel type. C'est habituellement un "dict (une liste de couples clé-valeur) mais ce peut aussi être un "array" de "dict" (une liste de plusieurs listes de couples clé-valeur) et en principe ce peut être également n'importe quel type élémentaire tel qu'un nombre entier. C'est pourquoi la première chose à faire est de savoir à quel type d'élément nous avons affaire.
Il n'y a pas moyen de stocker le type dans une variable. Il suffit cependant d'exécuter la ligne suivante et de regarder le résultat dans la Console.
PlistType the_plist
La Console dit que nous avons affaire à un "dictionary": une liste de couples clé-valeur. Cela signifie que nous pouvons rassembler la liste de toutes les clés de ce dictionnaire, de façon à choisir ce que nous voulons afficher à l'utilisateur.
Toutefois, ce n'est pas la peine d'enregistrer cette liste de clés : nous nous contenterons de l'afficher dans la Console.
PlistGetKeys the_plist
-- {"CountryName", "ExistingEmailAddress", "FirstName", "StreetAddr1", "LastName",etc.}
Choisissons trois clés dans la liste affichée dans la Console : FirstName, LastName et City.
set the_FName to PlistGet (PlistChild the_plist key "FirstName")
set the_LName to PlistGet (PlistChild the_plist key "LastName")
set the_City to PlistGet (PlistChild the_plist key "City")
Nous pouvons maintenant utiliser ces variables de texte pour fabriquer un message pour l'utilisateur. Mais pourquoi avant cela ne pas fermer l'accès à la p-list ? Nous n'en avons plus besoin. Pour être sûr que nous ne réutiliserons pas cette référence par inadvertance, nous réinitialisons à zéro la valeur de the_plist - c'est une pratique habituelle lorsqu'on travaille avec des pointeurs.
PlistClose the_plist
set the_plist to 0
Maintenant construisons le message :
set the_msg to "Hello " & the_FName & " " & the_LName & "! "
set the_msg to the_msg & "I wish you a good day in " & the_City & "."
dd(the_msg)
English version
Copyright ©2008 Paris, Satimage