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-Key: 203534

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

Printed on: April 19, 2024 at 05:04 o'clock

Member: rubberman
rubberman Mar 18, 2013 updated at 23:19:15 (UTC)
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
Member: piBaer
piBaer Mar 19, 2013 at 06:47:49 (UTC)
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
Member: netgearsdk
netgearsdk Mar 22, 2013 at 13:48:58 (UTC)
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
Member: rubberman
rubberman Mar 22, 2013 at 19:00:09 (UTC)
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