This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
vba:cast:cdict [07.10.2014 15:52:26] yaslaw |
vba:cast:cdict [29.04.2015 11:17:26] (current) yaslaw |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | {{keywords>vba,dictionary,cast,create dictionary,function}} | ||
<const> | <const> | ||
- | version=2.0.2 | + | version=3.1.3 |
- | vdate=09.09.2014 | + | vdate=07.01.2015 |
fname=cast_cdict.bas | fname=cast_cdict.bas | ||
- | ns=%NAMESPACE% | + | ns=%NAMESPACE% |
fpath=/vba/cast | fpath=/vba/cast | ||
</const> | </const> | ||
+ | {{keywords>vba,dictionary,cast,create dictionary,function}} | ||
+ | {{description>Diese Funktion erstellt auf verschiedene Arten ein Dictionary. V-%%version | ||
+ | %%}} | ||
+ | |||
====== [VBA] cDict() ====== | ====== [VBA] cDict() ====== | ||
- | ''Version %%version%% %%vdate%%'' | + | //Einfaches erstellen eines Dictionarays aus Arrays, Collections, String, Wertesammlungen.// |
+ | ==Version %%version%% - %%vdate%%== | ||
Diese Funktion erstellt auf verschiedene Arten ein Dictionary. | Diese Funktion erstellt auf verschiedene Arten ein Dictionary. | ||
\\ Die Funktion alleinstehend macht mässig Sinn. ich brauche sie aber immer mal wieder in anderen Funktionen. zB [[vba:functions:strreplace]] | \\ Die Funktion alleinstehend macht mässig Sinn. ich brauche sie aber immer mal wieder in anderen Funktionen. zB [[vba:functions:strreplace]] | ||
- | {{:vba:cast:%%fname%%|Download %%fname%% (V-%%version%%)}} | + | {{%%fname%%|Download %%fname%% (V-%%version%%)}} |
+ | |||
+ | >Um aus einem JSON-String ein Dictionary zu erstellen habe ich die Libraray [[vba:cast:json]] erstellt. | ||
+ | Darum wird dasnicht in der Funktion cDict() abgehandelt | ||
===== Definitionen ===== | ===== Definitionen ===== | ||
+ | Es gibt verschiedene Varianten um cDict() anzuwenden. Hier ist mal eine Liste verschiedener Anwendungsarten. Beispiele dazu sin weiter unten aufgeführt | ||
<code>Dictionary = cDict(key1, value1 [,key2, value2...[,key#, value#]]) | <code>Dictionary = cDict(key1, value1 [,key2, value2...[,key#, value#]]) | ||
+ | |||
Dictionary = cDict(array(key1 [,key2...[,key#]]), array(value1 [,value2...[,value#]]) | Dictionary = cDict(array(key1 [,key2...[,key#]]), array(value1 [,value2...[,value#]]) | ||
+ | |||
Dictionary = cDict(array(value1 [,value2...[,value#]]) | Dictionary = cDict(array(value1 [,value2...[,value#]]) | ||
+ | |||
Dictionary = cDict(dictionary1 [,dictionary2...[,dictionary#]]) | Dictionary = cDict(dictionary1 [,dictionary2...[,dictionary#]]) | ||
- | Dictionary = cDict(string) | + | |
- | </code> | + | Dictionary = cDict(string)</code> |
<code vb>Public Function cDict(ParamArray iItems() As Variant) As dictionary</code> | <code vb>Public Function cDict(ParamArray iItems() As Variant) As dictionary</code> | ||
Line 84: | Line 96: | ||
[5] => <String> 'E' | [5] => <String> 'E' | ||
)</code> | )</code> | ||
- | ==== 2 Arrays: Key-Array und Vale-Array ==== | + | ==== 2 Arrays: Key-Array und Value-Array ==== |
<code>Dictionary = cDict(array(key1 [,key2...[,key#]]), array(value1 [,value2...[,value#]])</code> | <code>Dictionary = cDict(array(key1 [,key2...[,key#]]), array(value1 [,value2...[,value#]])</code> | ||
Der Funktion werden 2 Arrays übergeben. Der erste beinhaltet alle Keys, der Zweite die Values. Die Anzahl Einträge hängt nur vom Key-Array ab | Der Funktion werden 2 Arrays übergeben. Der erste beinhaltet alle Keys, der Zweite die Values. Die Anzahl Einträge hängt nur vom Key-Array ab | ||
Line 115: | Line 127: | ||
<code>Dictionary = cDict(string)</code> | <code>Dictionary = cDict(string)</code> | ||
%%Ein Dictionary kann auch als String beschrieben werden. So ähnlich einem Set-Statement in einem SQL. | %%Ein Dictionary kann auch als String beschrieben werden. So ähnlich einem Set-Statement in einem SQL. | ||
- | Dieser beinhalter jeweils ein Key (key in [], '' oder ""), eine Zuweisung(=>, = oder :) und einem Value ('' oder "" als Delemiter für Strings, ## für Datum und keine Delemiter für Zahlen). Es können mehrere Zuweisungen mit einem Komma getrent übergeben werden%% | + | Dieser beinhalter jeweils ein Key (key in [], '' oder ""), eine Zuweisung(=>, = oder :) und einem Value ('' oder "" als Delemiter für Strings, ## für Datum und keine Delemiter für Zahlen). Es können mehrere Zuweisungen mit einem Komma getrent übergeben werden.%%\\ |
+ | Ist ein Delemiter Bestandteil des Textes, kann er mit einem \ maskiert werden. Zum Beispiel 'Paddy O\'Brien'. | ||
<code vb>'2 Verschidene Zuordnungen: Zahl, Datum und Text. | <code vb>'2 Verschidene Zuordnungen: Zahl, Datum und Text. | ||
'Man sieht auch die 3 verschiedenen KEy-Value Zuordnungsstrings '=>', '=', ':' | 'Man sieht auch die 3 verschiedenen KEy-Value Zuordnungsstrings '=>', '=', ':' | ||
- | d cDict("A=> 3, 'B' : #8-9-2014#, 'C' = ""Wert 'C'""") | + | d cdict("'A'=>123456,'B':123.45,'C'=#11-1-2014#,'3.4':'abc'") |
<Dictionary> ( | <Dictionary> ( | ||
- | [A] => <Decimal> 3 | + | [A] => <Long> 123456 |
- | [B] => <Date> 09.08.2014 | + | [B] => <Double> 123.45 |
- | [C] => <String> 'Wert 'C'' | + | [C] => <Date> 11.01.2014 |
+ | [3.4] => <String> 'abc' | ||
) | ) | ||
+ | |||
'Ein Beispiel um Delemiter zu maskieren | 'Ein Beispiel um Delemiter zu maskieren |