|
Microsoft® Visual Basic® Scripting Edition VBScript-Variablen |
VBScript-Tutorium Zurück | Weiter
|
Eine Variable ist ein praktischer Platzhalter, der auf eine Stelle im Speicher des Computers verweist, an der Sie Programmdaten speichern können, die sich während der Ausführung des Skripts ändern kann. Sie können beispielsweise eine Variable namens KlickZaehler einrichten, um zu speichern, wie oft ein Benutzer auf ein Objekt in einer bestimmten Web-Seite klickt. Es ist unwichtig, wo sich die Variable im Computerspeicher befindet. Wichtig ist, daß Sie nur ihren Namen angeben müssen, um den Wert der Variablen abzurufen oder zu ändern. In VBScript haben Variablen immer den grundlegenden Datentyp Variant.
Sie deklarieren Variablen in Ihrem Skript explizit mit den Anweisungen Dim, Public und Private. Beispiel:
Sie deklarieren mehrere Variablen, indem Sie diese jeweils durch Kommas voneinander trennen. Beispiel:Dim GradFahrenheit
Sie können eine Variable auch implizit deklarieren, indem Sie einfach ihren Namen an einer beliebigen Stelle in Ihrem Skript verwenden. Dies gilt allgemein als schlechter Programmierstil, weil Sie den Variablennamen an der einen oder anderen Stelle falsch eingeben könnten, was bei der Ausführung des Skripts zu unerwarteten Ergebnissen führt. Aus diesem Grund gibt es die Option Explicit-Anweisung, mit der Sie die explizite Deklaration aller Variablen erzwingen können. Die Option Explicit-Anweisung sollte die erste Anweisung innerhalb Ihres Skripts sein.Dim Oben, Unten, Links, Rechts
Für Variablennamen gelten die Standardregeln zum Benennen von Sprachelementen in VBScript. Für Variablennamen gilt:
- Sie müssen mit einem Zeichen aus dem Alphabet beginnen.
- Sie dürfen keinen Punkt enthalten.
- Sie dürfen nicht länger als 255 Zeichen sein.
- Sie müssen innerhalb des Gültigkeitsbereichs, für den sie deklariert werden, eindeutig sein.
Wenn Sie eine Variable in einer Prozedur deklarieren, kann normalerweise nur Code innerhalb dieser Prozedur auf den Variablenwert zugreifen oder ihn ändern, d.h. die Variable hat einen lokalen Gültigkeitsbereich und wird als Variable auf Prozedurebene bezeichnet. Wenn Sie eine Variable außerhalb einer Prozedur deklarieren, ist sie für alle Prozeduren in Ihrem Skript sichtbar. Diese Art von Variable auf Skriptebene hat die Skriptebene als Gültigkeitsbereich.Die Zeitspanne, in der eine Variable existiert, wird als ihre Lebensdauer bezeichnet. Die Lebensdauer einer Variablen auf Skriptebene reicht vom Zeitpunkt der Deklaration bis zur Beendigung des Skripts. Die Lebensdauer einer lokalen Variablen beginnt mit der Deklarationsanweisung am Anfang der Prozedur und endet mit Beendigung der Prozedur. Lokale Variablen eignen sich gut als temporärer Speicherplatz während der Ausführung einer Prozedur. Sie können lokale Variablen mit demselben Namen in mehreren Prozeduren verwenden, da jede nur von der Prozedur erkannt wird, in der sie deklariert wurde.
Werte werden einer Variablen durch einen Ausdruck zugewiesen, bei dem die Variable auf der linken Seite des Ausdrucks und der zuzuweisende Wert auf der rechten Seite des Ausdrucks steht. Beispiel:
B = 200
Meistens weisen Sie einer deklarierten Variablen nur einen einzelnen Wert zu. Solche Variablen werden skalare Variablen genannt. In anderen Fällen ist es sinnvoll, einer Variablen mehrere zusammenhängende Werte zuzuweisen. In diesen Fällen können Sie eine Variable erstellen, die eine Folge von Werten enthalten kann. Solche Variablen nennt man Datenfeldvariablen. Datenfeldvariablen werden fast genauso deklariert wie skalare Variablen. Der einzige Unterschied besteht darin, daß bei der Deklaration von Datenfeldvariablen auf den Namen Klammern folgen. Im folgenden Beispiel wird ein eindimensionales Datenfeld mit 11 Elementen deklariert:
Obwohl in Klammern die Zahl 10 angegeben wird, enthält dieses Datenfeld 11 Elemente, weil alle Datenfelder in VBScript nullbasiert sind, d.h. mit dem Index Null beginnen. In einem nullbasierten Datenfeld ist die Anzahl der Elemente immer um Eins höher als der in Klammern angegebene Wert. Diese Art von Datenfeld nennt man Datenfeld fester Größe.Dim A(10)Zur Zuweisung von Daten an die Elemente des Datenfelds verwenden Sie einen Index im Datenfeld. Mit Indizes von Null bis 10 können den Elementen eines Datenfelds auf folgende Weise Werte zugewiesen werden:
Auf ähnliche Weise (mit einem Index im Datenfeld) kann der Wert eines beliebigen Datenfeldelements wieder abgerufen werden. Beispiel:A(0) = 256 A(1) = 324 A(2) = 100 . . . A(10) = 55
Datenfelder sind nicht auf eine einzige Dimension beschränkt. Sie können bis zu 60 Dimensionen angeben, obwohl sich die meisten Menschen nur drei oder vier Dimensionen vorstellen können. Mehrere Dimensionen werden durch Angabe von mehreren Datenfeldgrößen zwischen den Klammern deklariert und jeweils durch ein Komma voneinander getrennt. Im folgenden Beispiel ist die Variable Tabelle1 ein zweidimensionales Datenfeld mit 6 Zeilen und 11 Spalten:. . . EineVariable = A(8) . . .
In einem zweidimensionalen Datenfeld gibt die erste Zahl immer die Anzahl der Zeilen und die zweite Zahl die Anzahl der Spalten an.Dim Tabelle1(5, 10)Sie können auch Datenfelder deklarieren, deren Größe sich während des Ablaufs Ihres Skripts ändern kann. Solche Datenfelder werden als dynamische Datenfelder bezeichnet. Das Datenfeld wird in einer Prozedur anfänglich mit einer Dim-Anweisung (wie jedes andere Datenfeld auch) oder mit einer ReDim-Anweisung deklariert. Der Unterschied besteht darin, daß zwischen den Klammern keine Größe oder Anzahl von Dimensionen angegeben wird. Beispiel:
Um ein dynamisches Datenfeld verwenden zu können, müssen Sie anschließend die Zahl der Dimensionen und deren Größen mit ReDim festlegen. Im folgenden Beispiel setzt ReDim die anfängliche Größe des dynamischen Datenfelds auf 25. Eine nachfolgende ReDim-Anweisung ändert die Größe auf 30, verwendet aber das Schlüsselwort Preserve, so daß der Inhalt des Datenfelds bei der Größenänderung erhalten bleibt.Dim EinDatenfeld() ReDim AnderesDatenfeld()
Sie können die Größe eines dynamischen Datenfelds beliebig oft ändern, müssen aber wissen, daß bei einer Verkleinerung des Datenfelds die Daten in den entfernten Elementen verloren gehen.ReDim EinDatenfeld(25) . . . ReDim Preserve EinDatenfeld(30)