Home

Tutoriel AppleScript Studio

Partie 3 - Création d'une p-list à partir d'un fichier Text

Etape 3 - Création d'une p-list

Commun Tiger & Léopard

Une P-list c'est quoi ?

Ouvrez le dossier /Library/Preference/ d'un utilisateur et vous trouvez plein de fichiers avec la terminaison ".plist". Ce sont les fichiers où sont stockées pour chaque application les informations de fonctionnement. Le format est du type HTML avec des balises. Surtout, n'ouvrer pas un fichier plist avec un traitement de texte, vous aurez quelques choses à vomir.

Double cliquer sur un fichier plist, le programme Property List Editor va s'ouvrir, là, cela devient humainement lisible. Par exemple le fichier p-list de mon application a cette forme.




Cliquez sur "Author_used", et voilà la liste des quatre auteurs pour ma démonstration.




C'est pourtant sous la forme HTML que xCode va vous présenter la p-list "info.plist", que vous trouverez ici.




Pas bien lisible le HTML, néanmoins il faudra la lire pour remplacer la string "com.apple.ASApplication" par un nom à vous. Sinon, tous vos projets utiliseront cette même plist. Donc, ils s'écraseront les uns les autres.

Pour avoir un nom de p-list à moi, j'ai remplacé "com.apple.ASApplication" par "algClassic" dans "CFBundleIdentifier".




Notez, en final, pour être normalisé, je mettrais "com.legallou.CDClassic". L'usage est de mettre son domaine en verlan pour réduire les risques d'interférence.

Pour la mise au point "algClassic" se trouve en début de la liste des préférences, donc rapide à trouver. C'est la raison du choix.




Création de la p-list

Une commande toute simple.

tell user defaults --  Création de la p-list--------

make new default entry at end of default entries with properties {name:"Author", contents:liste_des_Author}

end tell

"default entry" est le nom de code pour désigner la p-list des préférences. name:"Author" donne Author comme nom pour la liste de données dans la p-list. Et liste_des_Author est la variable contenant les données à stocker dans la p-list.




Pour stocker des données dans la p-list
set contents of default entry "Author" to liste_des_Author

Cette commande transfert les données de la list liste_des_Author vers la p-list.

La variable liste_des_Author est une liste de la forme {"auteur1", "auteur2",....}.




Pour lire les données de la p-list
set liste_des_Author to contents of default entry " Author" as string



Création de la liste des données

Votre liste de données doit être une liste de la forme {"aa", "bb",....}, vous l'obtenez de différente manière suivant votre application. Dans ce tutoriel qui construit une application de gestion de bibliothèque de CD, nous obtenons initialement cette liste à partir d'un fichier de chargement initial, qui est en fait un fichier "back-up" de sauvegarde. Dans le chapitre suivant, nous étudierons la création de la p-list à partir d'un tableau de l'application à la fermeture de l'application.

Création de la liste à partir d'un fichier

Mon fichier back-up ayant plusieurs blocs de données (auteur, interprète, etc), j'ai fait un sous-programme de récupération des données, avec comme paramètre la variable monFichier pointant sur le fichier, et l'indicateur de fin de bloc. Pour cet exemple, nous traiterons que le premier bloc "Author", son indicateur de fin de bloc est "*endAuthor*".

-- Récupération des données dans une liste via une routine
set liste_des_Author to restoreSubFileClassic(monFichier, "*endAuthor*")

Le sous-programme restoreSubFileClassic lit le fichier entré une ligne à la fois sans le Carriage Return (read before return), stocke les lignes bout à bout dans une variable texte du type "list". Le résultat est {"auteur1", "auteur2" .....}.

Notez bien ligne 51 le as list. Fondamental, sinon, tous nos auteurs seront dans la p-list en une seul ligne. Faites un essai pour bien comprendre la différence entre string et list.

C'est fini. Vous trouverez le script complet, et le fichier TEXT d'entrée (son nom est "inputInit"), dans le projet plistAuteur à télécharger à plistAuteur.zip. (Créé avec xCode 2.4 sous Tiger 10.4).

Attention : Le fichier en entrée doit être un fichier en TEXT pur, avec un CR (Carriage Return, code 13), et pas un LF (Line Feed, code 10). Exemple, avec le logiciel TextEdit, il faut sauver avec les options line Breaks Macintoch, Encoding Western (Mac OS Roman). Prenez garde à la provenance de votre fichier, Mac, PC, Unix, etc, qui gèrent différemment la fin de ligne.



Ci-dessous une grande partie du code.




La suite - Sauvegarde des données à la fermeture de l'application


Page précédente

Page suivante

Merci de votre visite

UP