FSO: Dictionary
von Jan Winkler
Ein Dictionary-Objekt ist ein Paare-Objekt. D.h. es gibt immer einen Schlüssel, dem ein Element zugewiesen wird/ist. Es ist möglich neue Objekte zu erstellen oder bereits vorhandene - wie etwa Files, Folders oder Drives - zu nutzen. Ebenso ist auch das Nutzen und Erstellen von Schlüsseln und Elementen möglich. Dies beschränkt sich jedoch auf neu erstellte Dictionary-Objekte.
Ein neues Dictionary-Objekt wird mit dem Aufruf new ActiveXObject("Scripting.Dictionary") erstellt. Fortan kann nun mit diesem gearbeitet werden.
Notation: Objekt = new ActiveXObject("Scripting.Dictionary")
Beispiel:
a = new ActiveXObject("Scripting.Dictionary");
Um mit einem Dictionary-Objekt zu arbeiten erhält es verschiedene Eigenschaften und Methoden, die es ermöglichen Schlüssel und Elemente zu erstellen, zu bearbeiten, abzufragen und zu verändern. Dazu gibt es die folgenden Methoden:
Die Count-Eigenschaft gibt Ihnen die Anzahl der Schlüssel/Elemente wieder.
Notation: Objekt.Count
Beispiel:
function DictionaryCount()
{
fso = new ActiveXObject("Scripting.FileSystemObject");
a = fso.GetFolder('C:/Name');
alert('Das Verzeichnis enthält '+a.Files.Count+' Dateien.');
return
}
Die Add-Methode fügt einem Dictionary-Objekt einen Schlüssel sowie dazugehöriges Element ein.
Notation: Objekt.Add(Schlüssel,Element)
Beispiel:
Tisch = new ActiveXObject("Scripting.Dictionary");
Tisch.Add('Hoehe','80cm');
Tisch.Add('Breite','200cm');
Tisch.Add('Farbe','weiß');
Tisch.Add('Preis','120DM');
Mit der Exists-Methode können Sie prüfen, ob ein Schlüssel existiert (true) oder nicht (false). Dazu gibt die Methode den jeweiligen booleschen Wert wieder. Als Übergabewert wird der Name eines Schlüssels erwartet.
Notation: Objekt.Exists(Schlüssel)
Beispiel:
function DictionaryExists()
{
fso = new ActiveXObject("Scripting.FileSystemObject");
a = fso.GetFolder('C:/Name');
b = a.Files;
if(b.Exists('C:/Name/Name.txt') == true)
{ alert('Datei existiert'); }
else
{ alert('Datei existiert nicht.'); }
return
}
Die Item-Methode stellt ein Element eines Dictionary-Objekts dar. Damit ist es möglich, dieses Element zu verändern bzw. zu lesen. Als Übergabewert wird der Name des jeweiligen Schlüssels erwartet.
Notation: Objekt.Item(Schlüssel)
Beispiel:
function DictionaryItem(MeinDictionaryObjekt)
{
if(MeinDictionaryObjekt.Item('Name') != 'Klaus')
{MeinDictionaryObjekt.Item('Name') = 'Klaus'}
return
}
Die Items-Methode gibt eine Auflistung aller Elemente eines Dictionary-Objekts wieder. Diese können dann Beispielsweise an einen VBArray übergeben werden.
Notation: Objekt.Items()
Beispiel:
function DictionaryItems()
{
Tisch = new ActiveXObject("Scripting.Dictionary");
Tisch.Add('Hoehe','80cm');
Tisch.Add('Breite','200cm');
Tisch.Add('Farbe','weiß');
Tisch.Add('Preis','120DM');
a = (new VBArray(Tisch.Items())).toArray();
b = '';
for (i in b)
{
b = b + a[i] + '\n';
}
alert(b)
return
}
Die Key-Methode stellt einen Schlüssel eines Dictionary-Objekts dar. Damit ist es möglich, diesen Schlüssel zu verändern. Als Übergabewert wird der Name des jeweiligen Schlüssels erwartet.
Notation: Objekt.Key(Schlüssel)
Beispiel:
function DictionaryKey(MeinDictionaryObjekt)
{
MeinDictionaryObjekt.Key('Name1') = 'Name2'}
return
}
Die Keys-Methode gibt eine Auflistung aller Schlüssel eines Dictionary-Objekts wieder. Diese können dann Beispielsweise an einen VBArray übergeben werden.
Notation: Objekt.Keys()
Beispiel:
function DictionaryKeys()
{
Tisch = new ActiveXObject("Scripting.Dictionary");
Tisch.Add('Hoehe','80cm');
Tisch.Add('Breite','200cm');
Tisch.Add('Farbe','weiß');
Tisch.Add('Preis','120DM');
a = (new VBArray(Tisch.Keys())).toArray();
b = '';
for (i in b)
{
b = b + a[i] + '\n';
}
alert(b)
return
}
Die Remove-Methode entfernt einen Schlüssel mit dazugehörigem Element aus einem Dictionary-Objekt.
Notation: Objekt.Remove(Schlüssel)
Beispiel:
function DictionaryRemove()
{
Ich = new ActiveXObject("Scripting.Dictionary");
Ich.Add('Groesse','180cm');
Ich.Add('Alter','42 Jahre');
Ich.Add('Haarfarbe','schwarz');
Ich.Remove('Alter');
return
}
Die RemoveAll-Methode leert das gesamte Dictionary-Objekt - es entfernt sämtliche Schlüssel und Elemente.
Notation: Objekt.RemoveAll()
Beispiel siehe Remove-Methode.