Is there a way to list out (display) all the keys and values of a given dictionary?
(And list out all the current dictionaries?)
I would also like to be able to delete a particular key and delete a particular dictionary.
Is there a way to list out (display) all the keys and values of a given dictionary?
(And list out all the current dictionaries?)
I would also like to be able to delete a particular key and delete a particular dictionary.
Hey John,
See the Dictionaries user manual section of the Keyboard Maestro Wiki.
Here's how to extract key names and values as a text list to a pair of Keyboard Maestro variables without having to iterate through them using a Dictionaries collection:
List Dictionary Keys and Values to KM Variables v1.00.kmmacros (2.5 KB)
------------------------------------------------------------
# Auth: Christopher Stone
# dCre: 2019/06/21 16:51
# dMod: 2019/06/21 16:51
# Appl: Keyboard Maestro
# Task: List Dictionary Keys and Values to KM Variables.
# Libs: None
# Osax: None
# Tags: @Applescript, @Script, @Keyboard_Maestro_Engine, @List, @Dictionary, @Keys, @Values, @Variables
------------------------------------------------------------
set dictonaryName to "Your_Dictionary_Name"
set AppleScript's text item delimiters to linefeed
tell application "Keyboard Maestro Engine"
tell dictionary id dictonaryName
set keyList to name of dictionary keys
set valueList to value of dictionary keys
end tell
setvariable "keyList" to (keyList as text)
setvariable "valueList" to (valueList as text)
end tell
------------------------------------------------------------
Run these AppleScripts one at a time in the Script Editor.app and examine the results.
# Get Keyboard Maestro Dictionary Objects.
tell application "Keyboard Maestro Engine"
set dictList to dictionaries
end tell
# Get Name of Dictionaries.
tell application "Keyboard Maestro Engine"
set dictNameList to name of dictionaries
end tell
# Delete a Dictionary by Name.
tell application "Keyboard Maestro Engine"
delete dictionary "Your Dictionary Name"
end tell
# Delete a Dictionary Key by Name.
tell application "Keyboard Maestro Engine"
delete dictionary key "KeyName_01" of dictionary "Your Dictionary Name"
end tell
-Chris
Thanks so much. I'll try these out. I did look at the manual on Dictionaries but couldn't figure out how to do these tasks.
Hey John,
That's not too surprising. Some of those wiki and manual entries are hard to figure out.
-Chris
Dictionaries can be hard to deal with. The below Macro will list the Key and Value for all of your Dictionaries using the first Group, and for one specified dictionary using the second Group. The second Group uses the same For Each on Dictionary keys.
You will need to replace the Dictionary Name in the second Group with one of your Dictionaries.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~ VER: 1.0 2019-06-21 ~~~
List All Dictionary Key Values [Example].kmmacros (14 KB)
Note: This Macro was uploaded in a DISABLED state. You must enable before it can be triggered.
Author.@JMichaelTX
PURPOSE:
HOW TO USE
MACRO SETUP
REQUIRES:
TAGS: @Dictionary @Key @Value @List
USER SETTINGS:
ACTION COLOR CODES
USE AT YOUR OWN RISK
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~