Archives actuelles avec moteur de recherche
N'hésitez pas à vous inscrire à la liste : http://listes.patpro.net/mailman/listinfo/applescript_fr
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
De : (Liste AppleScript francophone) <applescript_fr@xxxxxxx.net>
À : "(Liste AppleScript francophone)" <applescript_fr@xxxxxxx.net>
Date : lundi 13 mai 2002 07:00
Objet : applescript_fr Digest #495
Liste AppleScript francophone Digest #495
1) ajout d'un élément à une list
by Marc Venot <thor_tue@xxxxxxx.net>
2) Re: ajout d'un élément à une list
by nicolas descombes <nicolas.descombes@xxxxxxx.fr>
3) Re : [AS] Re: première routine en ligne
by "Laurent Sebilleau" <l.sebilleau@xxxxxxx.fr>
4) Re: première routine en ligne
by "serge.segu" <serge.segu@xxxxxxx.fr>
5) Re: ajout d'un élément à une list
by Marc Venot <thor_tue@xxxxxxx.net>
6) Re: ajout d'un élément à une list
by nicolas descombes <nicolas.descombes@xxxxxxx.fr>
7) Re: ajout d'un élément à une list
by Marc Venot <thor_tue@xxxxxxx.net>
8) Re: ajout d'un élément à une list
by nicolas descombes <nicolas.descombes@xxxxxxx.fr>
9) Re: ajout d'un élément à une list
by Marc Venot <thor_tue@xxxxxxx.net>
De : Marc Venot <thor_tue@xxxxxxx.net> Date : Sun, 12 May 2002 09:59:46 +0200 (MEST) Objet : [AS] ajout d'un élément à une list Dans le tome 4 du guide: -- bigList est une liste de 4 000 nombres entiers set numItems to 4000 set t to (time of (current date)) repeat with n from 1 to numItems item n of bigList end repeat set total to (time of (current date)) - t Ce script refuse de s'executer parce qu'il ne connait pas bigList et ne sait pas mettre ajouter n dans bigList. -- GMX - Die Kommunikationsplattform im Internet. http://www.gmx.net
De : nicolas descombes <nicolas.descombes@xxxxxxx.fr> Date : Sun, 12 May 2002 12:37:59 +0200 Objet : [AS] Re: ajout d'un élément à une list >Le 12/05/02 9:59, Marc Venot a écrit : > Dans le tome 4 du guide: > -- bigList est une liste de 4 000 nombres entiers > set numItems to 4000 > set t to (time of (current date)) > repeat with n from 1 to numItems > item n of bigList > end repeat > set total to (time of (current date)) - t > > Ce script refuse de s'executer parce qu'il ne connait pas bigList et ne sait > pas mettre ajouter n > dans bigList. il faut créer biglist pour que le script fonctionne -- création pas rapide set biglist to {} repeat 4096 times set biglist to biglist & "a" end repeat -- résultat : une liste avec 4096 éléments "a" -- création plus rapide set biglist to {"a"} repeat 12 times set biglist to biglist & biglist end repeat -- résultat : une liste avec 4096 éléments "a" a+ Nicolas -- Guide AppleScript version Française. 7 tomes + un sommaire général. <http://trad.applescript.free.fr/Accueil.html> --
De : "Laurent Sebilleau" <l.sebilleau@xxxxxxx.fr> Date : Sun, 12 May 2002 08:54:54 +0200 Objet : [AS] Re : [AS] Re: première routine en ligne >De : nicolas descombes <nicolas.descombes@xxxxxxx.fr> >À : <applescript_fr@xxxxxxx.net> (Liste AppleScript francophone) >Objet : [AS] Re: première routine en ligne >Date : Ven 10 mai 2002 11:02 > Bonjour ! Commentaire rapide sur cette question: >>> Et en l'écrivant, j'ai pu vérifier plusieurs choses : >>> >>> d'abord, qu'il faut éviter au maximum les routines récursives, la mémoire se >>> sature vitesse V, le script est hyper-instable et provoque souvent le >>> plantage d'AS, et les résultats sont aléatoires. Et la longueur maximale des >>> nombres était autour de 60-70 chiffres. Pas moyen de dépasser cette limite >>> même en augmentant la mémoire allouée. >> >> À la lumière des explications de Laurent : les variables locales de la routine >> sont toujours actives et s'accumulent puisque on ne sort pas de la routine. À >> trouver peut-être, un moyen d'initialiser(=vide) ou supprimer les variables >> temporaires obsolètes. il me semble... ®©™ > > je n'ai pas réussi et remettre à zéro les variables ne modifie pas > l'occupation mémoire de chacune, la mémoire saturait, quand ce n'était pas > la pile. En fait, c'est effectivement la pile, car les variables automatiques (locales) sont créées dedans. A chaque appel de la routine récursive, il y a création d'un nouveau bloc dans la pile, contenant toutes les variables locales (plus éventuellement d'autres choses), et comme tu dis qu'il y a 70 à 80 appels récursifs, ça fait 70 ou 80 blocs à loger. Raison pour laquelle les routines récursives sont rarement utilisables: très vite la pile déborde. (Je ne saurais l'affirmer à coup sûr dans tous les cas de figure, mais sur le Mac, les débordements de pile ne sont pas toujours systématiquement détectés, si bien que l'erreur peut survenir ensuite, parce que le débordement a surchargé d'autres données utiles). > Et ces dysfonctionnements plantaient AS et rendent le système > entier plantogène. Alors au lieu d'utiliser une routine récursive, j'ai opté > pour une instruction Repeat comme le conseille le GAS. > Un type a démontré dans le temps que toute algorithme récursif pouvait s'écrire sous une forme itérative. On ne saurait donc jamais être bloqué. Signalons enfin que tout ça (routines récursives et utilisation de références) n'est pas propre à Applescript. On le constate quelque soit le langage. Nous évoquions avec Daniel (hors liste) l'utilité de faire un bout de documentation qui éclaire un peu toutes ces questions de manière systématique, et je pense qu'on va le faire. A+ LS
De : "serge.segu" <serge.segu@xxxxxxx.fr> Date : Sun, 12 May 2002 18:43:10 +0200 Objet : [AS] Re: première routine en ligne le 12/05/02 8:54, "Laurent Sebilleau"a dit : > Un type a démontré dans le temps que toute algorithme récursif pouvait > s'écrire sous une forme itérative. On ne saurait donc jamais être bloqué. un ex, si ça peut faire avancer (mais le type c'est pas moi of course) [script] -- MSG d'ERREUR SI "GRAND NOMBRE" dans les 2 cas on factorielle1(n) -- vers iterative set k to 1 repeat with j from 1 to n set k to (k * j) end repeat return k end factorielle1 on factorielle2(n) -- vers recursive if n = 0 then set k to 1 else set k to n * (my factorielle2(n - 1)) end if return k end factorielle2 [/script] serge
De : Marc Venot <thor_tue@xxxxxxx.net> Date : Sun, 12 May 2002 21:09:12 +0200 (MEST) Objet : [AS] Re: ajout d'un élément à une list > > Dans le tome 4 du guide: > > -- bigList est une liste de 4 000 nombres entiers > > set numItems to 4000 > > set t to (time of (current date)) > > repeat with n from 1 to numItems > > item n of bigList > > end repeat > > set total to (time of (current date)) - t > > > > Ce script refuse de s'executer parce qu'il ne connait pas bigList et ne > > sait pas mettre ajouter n dans bigList. > > il faut créer biglist pour que le script fonctionne > > -- création pas rapide > set biglist to {} > repeat 4096 times > set biglist to biglist & "a" > end repeat > -- résultat : une liste avec 4096 éléments "a" > > > -- création plus rapide > set biglist to {"a"} > repeat 12 times > set biglist to biglist & biglist > end repeat > -- résultat : une liste avec 4096 éléments "a" Merci. J'espère que vous allez l'ajouter dans le guide. -- GMX - Die Kommunikationsplattform im Internet. http://www.gmx.net
De : nicolas descombes <nicolas.descombes@xxxxxxx.fr> Date : Sun, 12 May 2002 21:57:05 +0200 Objet : [AS] Re: ajout d'un élément à une list >Le 12/05/02 21:09, Marc Venot a écrit : >> il faut créer biglist pour que le script fonctionne > Merci. J'espère que vous allez l'ajouter dans le guide. Apple ne l'avait pas mis dans le texte original et de toute façon, ça se devine facilement qu'il faut créer bigList avant d'exécuter le script. La version actuelle de GAS est la version définitive. Je n'ai pas prévu de refaire une nouvelle version, sauf si vraiment les réclamations étaient nombreuses. Donc pour l'instant, annotes-le sur la page car je n'ai pas encore reçu assez de réclamations. :-) a+ Nicolas -- Guide AppleScript version Française. 7 tomes + un sommaire général. <http://trad.applescript.free.fr/Accueil.html> --
De : Marc Venot <thor_tue@xxxxxxx.net> Date : Mon, 13 May 2002 00:30:21 +0200 (MEST) Objet : [AS] Re: ajout d'un élément à une list > >> il faut créer biglist pour que le script fonctionne > > > Merci. J'espère que vous allez l'ajouter dans le guide. > > Apple ne l'avait pas mis dans le texte original et de toute façon, ça se > devine facilement qu'il faut créer bigList avant d'exécuter le script. > > La version actuelle de GAS est la version définitive. Je n'ai pas prévu de > refaire une nouvelle version, sauf si vraiment les réclamations étaient > nombreuses. > > Donc pour l'instant, annotes-le sur la page car je n'ai pas encore reçu > assez de réclamations. :-) L'idéal serait un lien ou une petite indication où trouver comment créer un squelette de liste. J'ai une autre question: Dans le dossier de Gifbuilder il y a un exemple d'applescript. Il y a des instructions que j'ai du mal à comprendre comme cela s'applique comme "step by step" -- GMX - Die Kommunikationsplattform im Internet. http://www.gmx.net
De : nicolas descombes <nicolas.descombes@xxxxxxx.fr> Date : Mon, 13 May 2002 01:04:32 +0200 Objet : [AS] Re: ajout d'un élément à une list >Le 13/05/02 0:30, Marc Venot a écrit : > J'ai une autre question: > Dans le dossier de Gifbuilder il y a un exemple d'applescript. > Il y a des instructions que j'ai du mal à comprendre comme cela s'applique > comme "step by step" "step by step" --> pas à pas, étapes par étapes ? Si le script n'est pas trop long, donnes-le sur la liste avec les balises [SCRIPT] .... [/SCRIPT] ou donnes l'url de Gifbuilder. Pour info, j'ai remis une autre routine : un algorythme pour le calcul des clés des comptes bancaires (vérifié qu'avec les comptes français). Et nouveauté avec le script compilé, j'ai rajouté un applet qui utilise cette routine, Dialog Director (<http://www.osaxen.com/index.php>) doit être installé pour pouvoir l'utiliser. a+ Nicolas -- Guide AppleScript version Française. 7 tomes + un sommaire général. <http://trad.applescript.free.fr/Accueil.html> --
De : Marc Venot <thor_tue@xxxxxxx.net> Date : Mon, 13 May 2002 01:47:35 +0200 (MEST) Objet : [AS] Re: ajout d'un élément à une list > "step by step" --> pas à pas, étapes par étapes ? > > Si le script n'est pas trop long, donnes-le sur la liste avec les balises > [SCRIPT] .... [/SCRIPT] ou donnes l'url de Gifbuilder. property w : 80 property h : 80 property red : {65535, 0, 0} property blue : {0, 0, 65535} property green : {0, 65535, 0} property yellow : {65535, 65535, 0} property step : 20 tell application "clip2gif" set l to {} save {w, h} in window -- creates a new window repeat with i from 0 to 360 - step by step save {w, h} in window 1 ¬ drawing {{chart data:{i, blue, 90, blue, 90, yellow, 90, red, 90, green}, chart style:pie, position:{0, 0, w, h}}} set end of l to content of window 1 end repeat end tell tell application "GifBuilder" new repeat with p in l make new frame at end with data {contents:(p as item), transparency:first pixel, disposal method:no, interframe delay:10} end repeat set depth to 4 set color table to system colors set loop to 0 save in (new file default name "multigif.gif") end tell http://homepage.mac.com/piguet/gif.html -- GMX - Die Kommunikationsplattform im Internet. http://www.gmx.net