Dictionary-Objekt | |||||||||||||
Erstellbar | |||||||||||||
Ja |
|||||||||||||
Bibliothek | |||||||||||||
Microsoft Scripting Runtime |
|||||||||||||
Beschreibung | |||||||||||||
Das Dictionary-Objekt ähnelt dem Collection-Objekt, basiert jedoch ungefähr auf dem assoziativen Perl-Array. Genau wie ein Array oder ein Collection-Objekt enthält das Dictionary-Objekt so genannte Elemente oder Mitglieder, die wiederum Daten enthalten. Ein Dictionary-Objekt kann beliebige Daten enthalten, auch Objekte und andere Dictionary-Objekte. Zum Zugriff auf den Wert dieser Dictionary-Elemente verwenden Sie eindeutige Schlüssel (oder benannte Werte), die mit den Daten gespeichert werden. Dies unterscheidet sich von der Verwendung der Ordinalposition des Elements in einem Array. Deshalb eignet sich ein Dictionary-Objekt ideal für den Zugriff auf Daten, die mit einem eindeutigen benannten Wert verknüpft sind. Sie können auf jedes in einem Dictionary-Objekt gespeicherte Element zugreifen, indem Sie das Konstrukt For Each ...Next verwenden. Es wird jedoch keine Variante mit dem im Dictionary-Objekt gespeicherten Datenwert zurückgegeben, sondern eine Variante mit dem Schlüssel, der dem Mitglied zugeordnet ist. Sie müssen diesen Schlüssel dann an die Methode Item übergeben, um das Mitglied abzurufen, wie im folgenden Beispiel gezeigt: Dim vKey Dim sItem, sMsg Dim oDict Set oDict = CreateObject("Scripting.Dictionary") oDict.Add "One", "Engine" oDict.Add "Two", "Wheel" oDict.Add "Three", "Tire" oDict.Add "Four", "Spanner" For Each vKey In oDict sItem = oDict.Item(vKey) sMsg = sMsg & sItem & vbCrLf Next MsgBox sMsg |
|||||||||||||
Eigenschaften des Dictionary-Objekts | |||||||||||||
Das Dictionary-Objekt hat die folgenden vier Eigenschaften:
|
|||||||||||||
Methoden des Dictionary-Objekts | |||||||||||||
Das Dictionary-Objekt unterstützt die folgenden fünf Methoden:
|
Methode Dictionary.Add | |
Syntax | |
dictionaryobject.Add key, item
|
|
Beschreibung | |
Fügt dem angegebenen Dictionary-Objekt einen Schlüssel und das zugehörige Element hinzu. |
|
Wichtige Regeln | |
|
|
Beispiel | |
In diesem Beispiel wird ein Dictionary-Objekt verwendet, um die Abkürzungen und vollständigen Namen von US-Bundesstaaten zu speichern. Dim StateCode, StateName Dim StateDict Dim Key Set StateDict = CreateObject("Scripting.Dictionary") StateCode = "CA" StateName = "California" StateDict.Add StateCode, StateName StateCode = "NY" StateName = "New York" StateDict.Add StateCode, StateName StateCode = "MI" StateName = "Michigan" StateDict.Add StateCode, StateName Key = "NY" MsgBox StateDict.Item(Key) |
|
Tipps zur Programmierung | |
|
|
Siehe auch | |
Eigenschaft Dictionary.Key |
|
Eigenschaft Dictionary.CompareMode | |
Datentyp | |
Long |
|
Beschreibung | |
Bewirkt das Einstellen oder die Rückgabe des Modus, mit dem die Schlüssel in einem Dictionary-Objekt verglichen werden. |
|
Wichtige Regeln | |
|
|
Tipps zur Programmierung | |
|
|
Eigenschaft Dictionary.Count | |
Datentyp | |
Long |
|
Beschreibung | |
Eine schreibgeschützte Eigenschaft, die die Anzahl der Schlüssel-/Elementpaare in einem Dictionary-Objekt zurückgibt. |
|
Wichtige Regeln | |
Diese Eigenschaft gibt die tatsächliche Anzahl der Elemente im Dictionary zurück. Wenn Sie die Eigenschaft Count zur Iteration der Elemente im Dictionary verwenden, würde der Code deshalb in etwa folgendermaßen aussehen: Dim ctr For ctr = 0 to dictionary.Count - 1 ' do something Next |
|
Methode Dictionary.Exists | |
Syntax | |
dictionaryobject.Exists(key)
|
|
Rückgabewert | |
Boolesch |
|
Beschreibung | |
Bestimmt, ob der angegebene Schlüssel im Dictionary-Objekt vorhanden ist. |
|
Wichtige Regeln | |
Gibt True zurück, wenn der angegebene Schlüssel im Dictionary-Objekt vorhanden ist. Andernfalls lautet die Rückgabe False. |
|
Tipps zur Programmierung | |
|
|
Beispiel | |
If oDict.Exists(strOldKey) Then oDict.Key(strOldKey) = strNewKey End If |
|
Eigenschaft Dictionary.Item | |
Syntax | |
Die Syntax zum Einstellen eines Elements lautet: dictionaryobject.Item(key) = item Die Syntax zur Rückgabe eines Elements lautet: value = dictionaryobject.Item(key)
|
|
Datentyp | |
Beliebig |
|
Beschreibung | |
Bewirkt das Einstellen oder die Rückgabe des Datenelements, das mit dem angegebenen Schlüssel im Dictionary-Objekt verknüpft werden soll. |
|
Wichtige Regeln | |
|
|
Tipps zur Programmierung | |
|
|
Beispiel | |
In diesem Beispiel dient das Dictionary-Objekt als Tabelle, aus der der Name des Bundesstaates abgerufen wird, dessen Abkürzung der Benutzer eingegeben hat. Im Folgenden wird die HTML-Seite gezeigt, die die Benutzerinformationen an den Server übermittelt: <HTML> <HEAD><TITLE>Dictionary Object Example</TITLE></HEAD> <BODY> Enter your name and location: <P> <FORM METHOD=POST ACTION=dictobj.asp> Your name: <INPUT TYPE="Text" NAME="VisitorName" /><P> Your location: <INPUT TYPE="Text" NAME="City" />, <INPUT TYPE="Text" NAME="State" SIZE=2 /> <P> <INPUT TYPE="Submit" VALUE="Submit" /> </FORM> <BODY> </HTML> Im Folgenden wird die ASP-Seite gezeigt, die die vom Benutzer gesendeten Informationen abruft, kodiert und aus dem Dictionary-Objekt den vollständigen Namen des Bundesstaates abruft: <HTML> <HEAD> <TITLE>ASP Page for the Dictionary Object Example</TITLE> </HEAD> <BODY> <% Show Greeting %> <SCRIPT LANGUAGE="VBScript" RUNAT="Server"> Sub ShowGreeting( ) Dim StateDict Dim ClientName, ClientState ' Initialize dictionary Set StateDict = Server.CreateObject("Scripting.Dictionary") StateDict.Add "NY", "New York" StateDict.Add "CA", "California" StateDict.Add "FL", "Florida" StateDict.Add "WA", "Washington" StateDict.Add "MI", "Michigan" StateDict.Add "MA", "Massachusetts" StateDict.Add "MN", "Minnesota" ' add other states ClientName = Server.HTMLEncode(Request.Form("VisitorName")) ClientState = Server.HTMLEncode(Request.Form("State")) Response.Write("Hello, " & ClientName & ". <P>") Response.Write("We are pleased to have a visitor from ") Response.Write(StateDict.Item(ClientState) & "!") End Sub </SCRIPT> </BODY> </HTML> |
|
Methode Dictionary.Items | |
Syntax | |
dictionaryobject.Items
|
|
Rückgabewert | |
Ein Varianten-Array. |
|
Beschreibung | |
Gibt ein Array zurück, das alle Elemente im angegebenen Dictionary-Objekt enthält. |
|
Wichtige Regeln | |
Das zurückgegebene Varianten-Array basiert grundsätzlich auf Null, und der Datentyp entspricht dem der Elemente im Dictionary-Objekt. |
|
Tipps zur Programmierung | |
|
|
Siehe auch | |
Methode Dictionary.Keys |
|
Eigenschaft Dictionary.Key | |
Syntax | |
dictionaryobject.Key(key) = newkey
|
|
Datentyp | |
String. |
|
Beschreibung | |
Ersetzt einen vorhandenen Schlüssel durch einen neuen Schlüssel. |
|
Wichtige Regeln | |
|
|
Beispiel | |
Private Function ChangeKeyValue(sOldKey, sNewKey) 'Assumes oDictionary is a public object If oDictionary.Exists(sOldKey) Then oDictionary.Key(sOldKey) = sNewKey ChangeKeyValue = True Else ChangeKeyValue = False End If End Function |
|
Tipps zur Programmierung | |
|
|
Methode Dictionary.Keys | |
Syntax | |
dictionaryobject.Keys
|
|
Rückgabewert | |
Ein String-Array. |
|
Beschreibung | |
Gibt ein Array zurück, das alle Schlüsselwerte im angegebenen Dictionary-Objekt enthält. |
|
Wichtige Regeln | |
Das zurückgegebene Array ist immer ein Varianten-Array, das auf Null basiert und einen String-Datentyp hat. |
|
Tipps zur Programmierung | |
Mit der Methode Keys werden nur die Schlüssel abgerufen, die in einem Dictionary-Objekt gespeichert sind. Mit der Methode Items können Sie alle Elemente des Dictionary-Objekts abrufen. Um ein bestimmtes Datenelement erneut aufzurufen, verwenden Sie die Eigenschaft Item des Dictionary-Objekts. |
|
Beispiel | |
Dim vArray vArray = DictObj.Keys For i = 0 to DictObj.Count -1 Response.Write vArray(i) & "<BR>" Next |
|
Methode Dictionary.Remove | |
Syntax | |
dictionaryobject.Remove key
|
|
Beschreibung | |
Entfernt sowohl den angegebenen Schlüssel als auch die zugehörigen Daten (das heißt das Element) aus dem Dictionary. |
|
Wichtige Regeln | |
Wenn key nicht vorhanden ist, wird der Laufzeitfehler 32811 ausgegeben. In dieser Fehlermeldung werden Sie darauf hingewiesen, dass das Element nicht gefunden wurde. |
|
Methode Dictionary.RemoveAll | |
Syntax | |
dictionaryobject.RemoveAll
|
|
Beschreibung | |
Leert das Dictionary. Dabei werden alle Schlüssel und die zugehörigen Daten aus dem Dictionary entfernt. |
|
Tipps zur Programmierung | |
Wenn Sie nicht den ganzen Inhalt des Dictionary-Objekts, sondern nur bestimmte Mitglieder entfernen möchten, verwenden Sie stattdessen die Methode Remove. |
|