micneu
Goto Top

VBScript - schleife in einer schleife

Hallo Leute,

Möchte in VBScript eine schleife in einer schleife ausführen....

Hier mein Ziel:

das ergebnis soll so sein:

1 start a
2 mitte b
3 ende c

hier mein code:

option explicit
dim aussen, innen, test, zaehler, strInnen, test_innen
aussen = array("start", "mitte", "ende")  
innen = array("a", "b", "c")  
for each test in aussen
	zaehler = zaehler + 1
	for each test_innen in innen
		strInnen = test_innen
	next
	wscript.echo zaehler & " " & test & " " & strInnen  
Next

nur bekomme ich hier immer das ergebnis:
1 start c
2 mitte c
3 ende c

wo ist mein fehler?

Content-Key: 159694

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

Ausgedruckt am: 28.03.2024 um 22:03 Uhr

Mitglied: 76109
76109 29.01.2011 um 10:03:01 Uhr
Goto Top
Die inner Schleife wird ja komplett durchlaufen und die endet nun mal auf dem letzten Token (strInnen= c). D.h. insgesamt werden bei dieser Schleifen-Art 9 Ergebnisse erzielt außen(3) * innen(3), wenn das WScript.Echo in der Innen-Schleife stehen würde.

Wenn Du dieses Ergebnis
1 start a
2 mitte b
3 ende c
haben möchtest, dann entweder so Arrays 0-2 auslesen:
aussen = Array("start", "mitte", "ende")  
innen = Array("a", "b", "c")  

For i=0 To UBound(aussen)
    WScript.Echo i + 1 & " " & aussen(i) & " " & innen(i)  
Next
oder Arrays 1-3 auslesen (0 = Dummy = Leer):
aussen = Array("", "start", "mitte", "ende")  
innen = Array("", "a", "b", "c")  

For i=1 To UBound(aussen)
    WScript.Echo i  & " " & aussen(i) & " " & innen(i)  
Next
oder 1 Array mit Step 2 in 2er Schritten auslesen:
EinArray = Array("start", "a", "mitte", "b", "ende", "c")  

For i=0 To UBound(EinArray) Step 2
    WScript.Echo i + 1 & " " & EinArray(i) & " " & EinArray(i+1)  
Next

Gruß Dieter

PS. oder auch so:
EinArray = Array(Array("start", "a"), Array("mitte", "b"), Array("ende", "c"))  

For i = 0 To UBound(EinArray)
    WScript.Echo i + 1 & " " & EinArray(i)(0) & " " & EinArray(i)(1)  
Next
Mitglied: micneu
micneu 29.01.2011 um 10:29:18 Uhr
Goto Top
danek, du hast mir gerade den tag gerettet face-smile

ich habe mich für die letzte variante entschieden.

gruß michael