Topics
All
MacOS
(Only)
Windows
(Only)
Linux
(Only, Not)
iOS
(Only, Not)
Components
Crossplatform Mac & Win
Server
Client
Old
Deprecated
Guides
Examples
Videos
New in version:
9.3
9.4
9.5
10.0
10.1
10.2
10.3
10.4
10.5
10.6
Statistic
FMM
Blog
Dictionary.Create
Creates a new dictionary.
| Component | Version | macOS | Windows | Linux | Server | FileMaker iOS SDK |
| Dictionary | 5.0 | Yes | Yes | Yes | Yes | Yes |
Parameters
| Parameter | Description | Example | Flags |
|---|---|---|---|
| Key | Optional, a key. | Optional | |
| Value | Optional, a value. | Optional |
Result
Returns dictionary reference number or error.
Description
Creates a new dictionary.Dictionaries are hash maps, so lookup is very fast (often faster than search in your FileMaker database). You can use them for storing parameters or lookup tables.
Optionally you can pass keys and values as parameters to this function.
If you looked for assoziative arrays, you are right here.
Examples
Build a dictionary in a calculation:
Let ( [
/*
Create new Dictionary
*/
param = MBS( "Dictionary.Create" );
/*
Fill in parameters
*/
r1 = MBS( "Dictionary.SetValueForKey"; param; "text"; Pass Parameters with Dictionary::TextField );
r2 = MBS( "Dictionary.SetValueForKey"; param; "number"; Pass Parameters with Dictionary::NumberField);
r3 = MBS( "Dictionary.SetValueForKey"; param; "date"; Pass Parameters with Dictionary::DateField);
r4 = MBS( "Dictionary.SetValueForKey"; param; "time"; Pass Parameters with Dictionary::TimeField);
r5 = MBS( "Dictionary.SetValueForKey"; param; "timestamp"; Pass Parameters with Dictionary::TimeStampField);
r6 = MBS( "Dictionary.SetValueForKey"; param; "container"; Pass Parameters with Dictionary::ContainerField)
/*
return dictionary
*/
] ; param )
Build a dictionary with given Keys and Values:
MBS("Dictionary.Create"; "FirstName"; $FirstName; "LastName"; $LastName; "City"; $City; "Phone"; $Phone; "Email"; $Email)
Test script to look for duplicate UUIDs:
Set Variable [ $dic ; Value: MBS( "Dictionary.Create") ]
Loop
Set Variable [ $uuid ; Value: Get(UUID) ]
If [ MBS("Dictionary.HasKey"; $dic; $uuid) ]
Show Custom Dialog [ "Duplicate!" ; $uuid ]
Exit Loop If [ 1 ]
End If
Set Variable [ $r ; Value: MBS( "Dictionary.SetValueForKey"; $dic; $uuid; $uuid ) ]
End Loop
Set Field [ test::test ; MBS( "Dictionary.Keys"; $dic ) ]
Set Variable [ $r ; Value: MBS( "Dictionary.Release"; $dic ) ]
See also
- Dictionary.AddSQLRecord
- Dictionary.Count
- Dictionary.CreateNamed
- Dictionary.Serialize
- Dictionary.SetVariables
- Dictionary.ToJSON
- Dictionary.ToXML
- Dictionary.ValueForKey
- Dictionary.Values
- Dictionary.ValueTypeForKey
Example Databases
- Dictionary/Dictionary Container Test
- Dictionary/Pass Parameters with Dictionary 2
- Dictionary/Pass Parameters with Dictionary
Blog Entries
- Data structures in FileMaker with MBS Plugins
- MBS FileMaker Plugin 5.1 for OS X/Windows
- Passing parameters via dictionary functions
Release notes
- Version 8.1
- Added Dictionary.CreateNamed function.
Created 12nd December 2014, last changed 15th June 2017
Dictionary.Count - Dictionary.CreateNamed
Feedback: Report problem or ask question.
Links
MBS Xojo tutorial videos