[?]   dans   mode   trier par   

[<] 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

Apple, AppleScript, AppleScript Studio, AppleTalk, AppleWorks, ColorSync, Finder, HyperCard, iBook, iLife, iMac, iWork, Keynote, Mac, Macintosh, Mac OS, Pages, Panther, PowerBook, Power Mac, Power Macintosh, QuickTime, Safari, Tiger, Xcode sont des marques déposées par Apple Computer, Inc., enregistrées aux Etats-Unis et dans les autres pays. Liste officielle