Belle approche serte, mais ça ralenti grave vers le 1000ème contact ça respeed jusqu'au 1500, ça mouline et ça fini pas planter...
Je vais regarder si je peux débuguer seul, tj un peu remis a plus tard la programmation AS.
En tout cas le groupe ne semble pas créé...
ça fait planter l'éditeur de script...
Il semblerait que ça reste bloqué sur l'ouverture du carnet d'adresse...
Le 26/10/10 14:20, Patrick Stadelmann a écrit :
In article<4cc6ac25$0$23092$, Aegidius wrote:
Bein dans le titre...
Dans le Carnet d'Adresses une solution pour sélectionner les contacts n'appartenant a aucun groupe ?
Ce script crée un nouveau groupe contenant les contacts n'appartenant à aucun autre groupe. Il y a peut-être plus optimal, mais ça devrait fonctionner
set groupName to text returned of (display dialog ¬ "Nom du groupe à créer" default answer "Dans aucun groupe")
tell application "Address Book"
set newGroup to make new group at end ¬ with properties {name:groupName}
set inGroups to {} repeat with g in every group set inGroups to inGroups& (id of people of g) end repeat
set inNoGroup to {} repeat with p in every person if (id of p) is not in inGroups then copy contents of p to the end of inNoGroup end if end repeat
repeat with p in inNoGroup add p to newGroup end repeat
quit
end tell
delay 1
tell application "Address Book" to activate
Patrick
Patrick Stadelmann
In article <4cc6e400$0$22844$, Aegidius wrote:
En tout cas le groupe ne semble pas créé...
Il devrait, vu que c'est tout au début, mais il n'est pas visible tout de suite (c'est pourquoi le script relancait Address Book a la fin).
ça fait planter l'éditeur de script...
Variante un peu meilleure ci-dessous. C'est pas super rapide, c'est normal, AppleScript n'est pas vraiment adapté pour effectuer en boucle des opérations très simple, l'overhead devient vite important. Là avec 2000 noms à ajouter dans le groupe, ça a prix une dizaine de minutes sur un Mac Pro 2 x 2.8 GHz.
J'ai viré le redémarrage du Carnet d'Adresses car il peut mettre du temps à quitter.
set groupName to text returned of (display dialog ¬ "Nom du groupe à créer" default answer "Dans aucun groupe")
tell application "Address Book"
set newGroup to make new group at end ¬ with properties {name:groupName}
set inGroups to {} repeat with g in every group set inGroups to inGroups & (id of people of g) end repeat
repeat with p in every person if (id of p) is not in inGroups then add p to newGroup end if end repeat
quit
end tell
Patrick -- Patrick Stadelmann
In article <4cc6e400$0$22844$426a74cc@news.free.fr>,
Aegidius <aegidius@live.fr> wrote:
En tout cas le groupe ne semble pas créé...
Il devrait, vu que c'est tout au début, mais il n'est pas visible tout
de suite (c'est pourquoi le script relancait Address Book a la fin).
ça fait planter l'éditeur de script...
Variante un peu meilleure ci-dessous. C'est pas super rapide, c'est
normal, AppleScript n'est pas vraiment adapté pour effectuer en boucle
des opérations très simple, l'overhead devient vite important. Là avec
2000 noms à ajouter dans le groupe, ça a prix une dizaine de minutes sur
un Mac Pro 2 x 2.8 GHz.
J'ai viré le redémarrage du Carnet d'Adresses car il peut mettre du
temps à quitter.
set groupName to text returned of (display dialog ¬
"Nom du groupe à créer" default answer "Dans aucun groupe")
tell application "Address Book"
set newGroup to make new group at end ¬
with properties {name:groupName}
set inGroups to {}
repeat with g in every group
set inGroups to inGroups & (id of people of g)
end repeat
repeat with p in every person
if (id of p) is not in inGroups then
add p to newGroup
end if
end repeat
quit
end tell
Patrick
--
Patrick Stadelmann <Patrick.Stadelmann@unine.ch>
Il devrait, vu que c'est tout au début, mais il n'est pas visible tout de suite (c'est pourquoi le script relancait Address Book a la fin).
ça fait planter l'éditeur de script...
Variante un peu meilleure ci-dessous. C'est pas super rapide, c'est normal, AppleScript n'est pas vraiment adapté pour effectuer en boucle des opérations très simple, l'overhead devient vite important. Là avec 2000 noms à ajouter dans le groupe, ça a prix une dizaine de minutes sur un Mac Pro 2 x 2.8 GHz.
J'ai viré le redémarrage du Carnet d'Adresses car il peut mettre du temps à quitter.
set groupName to text returned of (display dialog ¬ "Nom du groupe à créer" default answer "Dans aucun groupe")
tell application "Address Book"
set newGroup to make new group at end ¬ with properties {name:groupName}
set inGroups to {} repeat with g in every group set inGroups to inGroups & (id of people of g) end repeat
repeat with p in every person if (id of p) is not in inGroups then add p to newGroup end if end repeat
quit
end tell
Patrick -- Patrick Stadelmann
Aegidius
Le carnet d'adresse s'ouvre quant même...
Le script fini par aller jusqu'au bout, mais pas de nouveau groupe, le carnet d'adresse n'est pas refermé...
et l'éditeur de script plante...
de l'ordre de 2100 adresses en tout...
On va bien finir par y arriver...
Le 26/10/10 16:50, Patrick Stadelmann a écrit :
In article<4cc6e400$0$22844$, Aegidius wrote:
En tout cas le groupe ne semble pas créé...
Il devrait, vu que c'est tout au début, mais il n'est pas visible tout de suite (c'est pourquoi le script relancait Address Book a la fin).
ça fait planter l'éditeur de script...
Variante un peu meilleure ci-dessous. C'est pas super rapide, c'est normal, AppleScript n'est pas vraiment adapté pour effectuer en boucle des opérations très simple, l'overhead devient vite important. Là avec 2000 noms à ajouter dans le groupe, ça a prix une dizaine de minutes sur un Mac Pro 2 x 2.8 GHz.
J'ai viré le redémarrage du Carnet d'Adresses car il peut mettre du temps à quitter.
set groupName to text returned of (display dialog ¬ "Nom du groupe à créer" default answer "Dans aucun groupe")
tell application "Address Book"
set newGroup to make new group at end ¬ with properties {name:groupName}
set inGroups to {} repeat with g in every group set inGroups to inGroups& (id of people of g) end repeat
repeat with p in every person if (id of p) is not in inGroups then add p to newGroup end if end repeat
quit
end tell
Patrick
Le carnet d'adresse s'ouvre quant même...
Le script fini par aller jusqu'au bout, mais pas de nouveau groupe, le
carnet d'adresse n'est pas refermé...
et l'éditeur de script plante...
de l'ordre de 2100 adresses en tout...
On va bien finir par y arriver...
Le 26/10/10 16:50, Patrick Stadelmann a écrit :
In article<4cc6e400$0$22844$426a74cc@news.free.fr>,
Aegidius<aegidius@live.fr> wrote:
En tout cas le groupe ne semble pas créé...
Il devrait, vu que c'est tout au début, mais il n'est pas visible tout
de suite (c'est pourquoi le script relancait Address Book a la fin).
ça fait planter l'éditeur de script...
Variante un peu meilleure ci-dessous. C'est pas super rapide, c'est
normal, AppleScript n'est pas vraiment adapté pour effectuer en boucle
des opérations très simple, l'overhead devient vite important. Là avec
2000 noms à ajouter dans le groupe, ça a prix une dizaine de minutes sur
un Mac Pro 2 x 2.8 GHz.
J'ai viré le redémarrage du Carnet d'Adresses car il peut mettre du
temps à quitter.
set groupName to text returned of (display dialog ¬
"Nom du groupe à créer" default answer "Dans aucun groupe")
tell application "Address Book"
set newGroup to make new group at end ¬
with properties {name:groupName}
set inGroups to {}
repeat with g in every group
set inGroups to inGroups& (id of people of g)
end repeat
repeat with p in every person
if (id of p) is not in inGroups then
add p to newGroup
end if
end repeat
Le script fini par aller jusqu'au bout, mais pas de nouveau groupe, le carnet d'adresse n'est pas refermé...
et l'éditeur de script plante...
de l'ordre de 2100 adresses en tout...
On va bien finir par y arriver...
Le 26/10/10 16:50, Patrick Stadelmann a écrit :
In article<4cc6e400$0$22844$, Aegidius wrote:
En tout cas le groupe ne semble pas créé...
Il devrait, vu que c'est tout au début, mais il n'est pas visible tout de suite (c'est pourquoi le script relancait Address Book a la fin).
ça fait planter l'éditeur de script...
Variante un peu meilleure ci-dessous. C'est pas super rapide, c'est normal, AppleScript n'est pas vraiment adapté pour effectuer en boucle des opérations très simple, l'overhead devient vite important. Là avec 2000 noms à ajouter dans le groupe, ça a prix une dizaine de minutes sur un Mac Pro 2 x 2.8 GHz.
J'ai viré le redémarrage du Carnet d'Adresses car il peut mettre du temps à quitter.
set groupName to text returned of (display dialog ¬ "Nom du groupe à créer" default answer "Dans aucun groupe")
tell application "Address Book"
set newGroup to make new group at end ¬ with properties {name:groupName}
set inGroups to {} repeat with g in every group set inGroups to inGroups& (id of people of g) end repeat
repeat with p in every person if (id of p) is not in inGroups then add p to newGroup end if end repeat
quit
end tell
Patrick
Patrick Stadelmann
In article <4cc73b14$0$18813$, Aegidius wrote:
Le carnet d'adresse s'ouvre quant même...
Le script fini par aller jusqu'au bout, mais pas de nouveau groupe, le carnet d'adresse n'est pas refermé...
et l'éditeur de script plante...
Ca a changé en 10.6, les modifications doivent être validées. Ca va ainsi nettement plus vite (moins d'une minute pour 1000 noms).
set groupName to text returned of (display dialog ¬ "Nom du groupe à créer" default answer "Dans aucun groupe")
tell application "Address Book"
set newGroup to make new group at end ¬ with properties {name:groupName} save
set inGroups to {} repeat with g in every group set inGroups to inGroups & (id of people of g) end repeat
repeat with p in every person if (id of p) is not in inGroups then add p to newGroup end if end repeat
save
quit
end tell
Patrick -- Patrick Stadelmann
In article <4cc73b14$0$18813$426a74cc@news.free.fr>,
Aegidius <aegidius@live.fr> wrote:
Le carnet d'adresse s'ouvre quant même...
Le script fini par aller jusqu'au bout, mais pas de nouveau groupe, le
carnet d'adresse n'est pas refermé...
et l'éditeur de script plante...
Ca a changé en 10.6, les modifications doivent être validées. Ca va
ainsi nettement plus vite (moins d'une minute pour 1000 noms).
set groupName to text returned of (display dialog ¬
"Nom du groupe à créer" default answer "Dans aucun groupe")
tell application "Address Book"
set newGroup to make new group at end ¬
with properties {name:groupName}
save
set inGroups to {}
repeat with g in every group
set inGroups to inGroups & (id of people of g)
end repeat
repeat with p in every person
if (id of p) is not in inGroups then
add p to newGroup
end if
end repeat
save
quit
end tell
Patrick
--
Patrick Stadelmann <Patrick.Stadelmann@unine.ch>
Le script fini par aller jusqu'au bout, mais pas de nouveau groupe, le carnet d'adresse n'est pas refermé...
et l'éditeur de script plante...
Ca a changé en 10.6, les modifications doivent être validées. Ca va ainsi nettement plus vite (moins d'une minute pour 1000 noms).
set groupName to text returned of (display dialog ¬ "Nom du groupe à créer" default answer "Dans aucun groupe")
tell application "Address Book"
set newGroup to make new group at end ¬ with properties {name:groupName} save
set inGroups to {} repeat with g in every group set inGroups to inGroups & (id of people of g) end repeat
repeat with p in every person if (id of p) is not in inGroups then add p to newGroup end if end repeat
save
quit
end tell
Patrick -- Patrick Stadelmann
Aegidius
Cette fois ça fonctionne mais ça met toujours autant de temps ce qui n'est pas en soit un problème, il faut simplement le savoir si ce script devenait publique il faudrait le préciser histoire que ça ne soit pas coupé avant la fin...
En tous cas merci beaucoup vu les synchros avec l'iPhone ou je ne veux justement pas forcément tout
Le 26/10/10 23:54, Patrick Stadelmann a écrit :
In article<4cc73b14$0$18813$, Aegidius wrote:
Le carnet d'adresse s'ouvre quant même...
Le script fini par aller jusqu'au bout, mais pas de nouveau groupe, le carnet d'adresse n'est pas refermé...
et l'éditeur de script plante...
Ca a changé en 10.6, les modifications doivent être validées. Ca va ainsi nettement plus vite (moins d'une minute pour 1000 noms).
set groupName to text returned of (display dialog ¬ "Nom du groupe à créer" default answer "Dans aucun groupe")
tell application "Address Book"
set newGroup to make new group at end ¬ with properties {name:groupName} save
set inGroups to {} repeat with g in every group set inGroups to inGroups& (id of people of g) end repeat
repeat with p in every person if (id of p) is not in inGroups then add p to newGroup end if end repeat
save
quit
end tell
Patrick
Cette fois ça fonctionne mais ça met toujours autant de temps ce qui
n'est pas en soit un problème, il faut simplement le savoir si ce script
devenait publique il faudrait le préciser histoire que ça ne soit pas
coupé avant la fin...
En tous cas merci beaucoup vu les synchros avec l'iPhone ou je ne veux
justement pas forcément tout
Le 26/10/10 23:54, Patrick Stadelmann a écrit :
In article<4cc73b14$0$18813$426a74cc@news.free.fr>,
Aegidius<aegidius@live.fr> wrote:
Le carnet d'adresse s'ouvre quant même...
Le script fini par aller jusqu'au bout, mais pas de nouveau groupe, le
carnet d'adresse n'est pas refermé...
et l'éditeur de script plante...
Ca a changé en 10.6, les modifications doivent être validées. Ca va
ainsi nettement plus vite (moins d'une minute pour 1000 noms).
set groupName to text returned of (display dialog ¬
"Nom du groupe à créer" default answer "Dans aucun groupe")
tell application "Address Book"
set newGroup to make new group at end ¬
with properties {name:groupName}
save
set inGroups to {}
repeat with g in every group
set inGroups to inGroups& (id of people of g)
end repeat
repeat with p in every person
if (id of p) is not in inGroups then
add p to newGroup
end if
end repeat
Cette fois ça fonctionne mais ça met toujours autant de temps ce qui n'est pas en soit un problème, il faut simplement le savoir si ce script devenait publique il faudrait le préciser histoire que ça ne soit pas coupé avant la fin...
En tous cas merci beaucoup vu les synchros avec l'iPhone ou je ne veux justement pas forcément tout
Le 26/10/10 23:54, Patrick Stadelmann a écrit :
In article<4cc73b14$0$18813$, Aegidius wrote:
Le carnet d'adresse s'ouvre quant même...
Le script fini par aller jusqu'au bout, mais pas de nouveau groupe, le carnet d'adresse n'est pas refermé...
et l'éditeur de script plante...
Ca a changé en 10.6, les modifications doivent être validées. Ca va ainsi nettement plus vite (moins d'une minute pour 1000 noms).
set groupName to text returned of (display dialog ¬ "Nom du groupe à créer" default answer "Dans aucun groupe")
tell application "Address Book"
set newGroup to make new group at end ¬ with properties {name:groupName} save
set inGroups to {} repeat with g in every group set inGroups to inGroups& (id of people of g) end repeat
repeat with p in every person if (id of p) is not in inGroups then add p to newGroup end if end repeat