[<] Sujet : [AS] lire un fichier plist
De : KOENIG Yvan <anonyme@...>
Date : 2008-01-15 21:12:46
Sujet : Re: [AS] lire un fichier plist
De : KOENIG Yvan <anonyme@...>
Date : 2008-01-15 21:18:13
Sujet : Re: [AS] lire un fichier plist
De : Daniel Varlet <anonyme@...>
Date : 2008-01-17 21:01:52
À 21:18 +0100 le 15.1.2008, KOENIG Yvan écrivait au sujet de "Re: [AS] lire un fichier plist" :
>Le 15 janv. 2008 à 21:12, KOENIG Yvan a écrit :
>
>> Bonsoir
>>
>> il n'y a pas que la keynote dans la vie ;)
>>
>> j'ai un chemin d'accès (à la mode HFS) vers un fichier pList :
>> set thePlist to "Macintosh
>> HD:Users:yvankoenig:Library:Preferences:com.apple.iWork.Numbers.plist"
>>
>> Pour lire ce fichier je pensais pouvoir utiliser:
>>
>> set thePlist to "Macintosh
>> HD:Users:yvankoenig:Library:Preferences:com.apple.iWork.Numbers.plist"
>> set thePlist to POSIX file thePlist
>> tell application "System Events"
>> tell contents of property list file thePlist
>> {value of property list item "LSDocumentDefaultSaveDirectory"}
>> end tell
>> end tell
>>
>
>Quel c?
>
>il suffisait d'utiliser le chemin à la mode HFS ;-)
>
>Mais le processus de conversion m'intéresse toujours.
>
>Yvan KOENIG
>_______________________________________________
>Applescript_fr mailing list
>anonyme@...
>http://listes.patpro.net/mailman/listinfo/applescript_fr
POSIX path of machin
Je mélange toujours moi aussi POSIX file et POSIX path. Il y a une raison simple, c'est que le nom de POSIX file me semble un choix malheureux de la part d'Apple, je l'explique plus bas.
C'est pour essayer de mettre les idées au clair que je vais une fois encore délayer la sauce:
'Posix path' est déclaré comme **propriété** de
dans le dictionnaire d'AS:
alias
file
file specification
dans le dico StandardAdditions.osax
POSIX file
Et dans d'autres applis, comme System Events, avec sa classe 'disk item'.
'Posix path' renvoit donc le chemin POSIX en texte.
Mais en fait la propriété 'POSIX path' est un leurre!!!! ;-)
'POSIX path' accepte en plus du string ou similaire (Unicode text, etc...). Et de n'importe quel texte (ou presque). Il n'y a aucune vérification de validité de fichier. On peut considérer 'POSIX path' comme une fonction de remplacement de texte évoluée. Grosso modo, il permute / et : , puis bricole avec le nom du disque s'il est valide.
POSIX path of "toto" -- toto n'existe pas
--> "/toto"
POSIX path of "HDOSX" -- HDOSX est le disque de démarrage
--> "/"
POSIX path of "LaCie160Go:toto:n'importe quoi" -- LaCie160Go est un disque externe
--> "/Volumes/LaCie160Go/toto/n'importe quoi"
La classe 'POSIX file', elle, fait strictement l'inverse: POSIX (text) -> HFS (file)
On aurait mieux fait de l'appeler 'POSIX to file'. Et en faire une commande. Bon d'accord c'est moins chic.
Mais POSIX file, franchement, là, ça ne veut rien dire. C'est même le "contraire" !! Car c'est un file HFS qui est le résultat !!!!
Comment ne pas se tromper?!??
une classe alias est un alias HFS
une classe file est un file HFS
une classe date est une date
Ça semble des évidences
Mais tout d'un coup surgit
une classe POSIX file qui est un file HFS... ...arghhhh....
On s'en sert comme ceci;
POSIX file monTexte
ou avec coercition
monTexte as POSIX file
Mais pas question d'essayer de coercer des alias ou des files!!!! Seulement du texte!!!
Forcément, sinon ça renverrait la même chose qu'en entrée: du HFS...
monAlias as POSIX file --> error
Là aussi 'POSIX file' accepte n'importe quoi comme texte (ou presque, faut pas pousser, on peut le faire tourner en bourrique).
set z to "~/toto et titi/" as POSIX file
--> file ":~:toto et titi:"
set z to POSIX path of z -- on revient au début avec la *propriété* POSIX path
--> "~/toto et titi/"
set z to z as POSIX file -- et on recommence
--> file ":~:toto et titi:"
etc...
C?est bien la fonction inverse.
Perso, je trouve ce système parfaitement tordu et emberlificotant. Ça suintait la bidouille de dernière minute à l'arrivée de Mac OS X. Certainement non testé avec de vrais utilisateurs.
-- Supplément
Avec System Events et sa classe disk Item (équivalente à la classe file?) on a une propriété intéressante supplémentaire: URL.
tell app "System Events"
set z to disk item (monAlias as text) -- accepte aussi un path POSIX, mais pas d'alias, ni d'URL. Le résultat est un file HFS.
path of z
POSIX path of z
URL of z
end
A+
--
Daniel
Daniel Varlet <anonyme@...>
Sujet : Re: [AS] lire un fichier plist
De : KOENIG Yvan <anonyme@...>
Date : 2008-01-17 21:12:20