netgearsdk
Goto Top

VBScript, aus For Each schleiffe Array erstellen

Hallo zusammen

Wie kann ich im VBScript aus einer For Each Schleiffe gewisse Elemente in einem Array packen und sie
ausserhalb der For Each schleife ansprechen?

Danke bereits im Voraus!

Content-ID: 203534

Url: https://administrator.de/contentid/203534

Ausgedruckt am: 23.11.2024 um 00:11 Uhr

rubberman
rubberman 19.03.2013 aktualisiert um 00:19:15 Uhr
Goto Top
Hallo netgearsdk,

das ist etwas zu allgemein. Was verstehst du unter "gewisse Elemente"? Wird das Array eine variable Anzahl an Elementen haben? Falls ja, schau dir mal
ReDim Preserve
an.

Grüße
rubberman
piBaer
piBaer 19.03.2013 um 07:47:49 Uhr
Goto Top
da gibt's im Netz beliebig viele Erklärungen..

zb.:

http://www.aspheute.com/artikel/20000927.htm

aber vielleicht schreibst du mal genauer was du brauchst oder stellst deinen Code hier rein..

Gruß
Benedikt
netgearsdk
netgearsdk 22.03.2013 um 14:48:58 Uhr
Goto Top
Hallo @rubberman


Mit gewisse Elemente meine ich, diese Elemente die nicht bei der IF in der For Schleife eliminiert werden.


Hier mal ein Beispiel:
Ich werde zwar diese Problematik anders Lösen, also ohne Array, aber rein um Interesse, wie würde es aussehen, wenn man dies mit Array lösen wollen würde.

Set colItems = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2").ExecQuery( _  
"SELECT * FROM Win32_NetworkAdapterConfiguration WHERE NOT MACAddress = '' AND IPEnabled = TRUE", "WQL", 48)  

For Each oItem In colItems

  If IsArray(oItem.IPAddress) Then
    aIP = Split(oItem.IPAddress(0), ".")  
	If aIP > 150 Then
	' Befülle aIP als Element in Array XY  
	End If
  Else
    aIP = Split(oItem.IPAddress, ".")  
  End If


Next

'Und ausserhalb von der Next Schleife möchte ich auf den Array XY zugreifen.  


Danke & Gruss
rubberman
rubberman 22.03.2013 um 20:00:09 Uhr
Goto Top
Hallo netgearsdk,

aIP ist bereits ein Array (aus den einzelnen Oktetten der IP Adresse), somit würde ein Vergleich mit einem Wert wie 150 nie funktionieren. Was wolltest du denn tatsächlich mit 150 vergleichen?

Ansonsten funktioniert das so, wie ich bereits oben beschrieben habe. Du musst einen ganzzahligen Wert definieren der bei 0 startet und bei jedem Fund inkrementiert wird. Mittels dieses Wertes und dem oben genannten
ReDim Preserve
erweiterst du die Länge deines Arrays dynamisch um ein Element und schaffst somit Platz.
Siehe hier oder auch dort für ein Beispiel.

Grüße
rubberman