webForumDet fria alternativet
Logga in / Bli medlem

Array bakvänt?

ASP

8 svar · 346 visningar · startad av KoTTeN

Medlem sedan sep. 20011 722 inlägg
Trådstart#1

Hej!
Kan man på något sett gå igenom en array baklänges? Alltså, istället för att stega igenom arrayn 0 - 10 görs det 10 - 0

Medlem sedan nov. 2003266 inlägg
#2

Ej testat, kan funka.

i = Ubound(array)
Do While (i >= 0)
  Response.Write(array(i) & "<BR>")
  i = i-1
Loop
Medlem sedan feb. 20011 498 inlägg
#3

Med en for-loop:

for i = ubound(array) to 0 step -1
	'lite kod...
next
Medlem sedan sep. 20011 722 inlägg
#4

A! Smart, ska testa senare. Tack så mycket!

Medlem sedan maj 2001797 inlägg
#5

Hmm, jag lyckas inte få till ampys for-loop. Jag hämtar alla bilder i en mapp:

set Files = Folder.Files

...och loopar ut dom med:

For each Item In Files

...och kan då enkelt hämta t ex filnamnet så här:

response.write Item.Name

Det funkar ju bra. Men nu vill jag alltså loopa ut arrayen bakifrån så jag ändrar min for-loop lite:

for item = ubound(Files) to 0 step -1

Det funkar mindre bra, vad gör jag för fel?

Medlem sedan juni 200032 967 inlägg
#6

Files är ingen array, det är en collection.
Du måste alltså först skapa en array med filnamnen.

dim varFiles()
i = 0
For each Item In Files
     redim preserve varFiles(i)
     varFiles(i) = Item.Name
     i = i + 1
Next

.....

for i = ubound(varFiles) to 0 step -1
     .....
next
Medlem sedan maj 2001797 inlägg
#7

Ouff, snabbt svar, tackar! Det funkar ju finfint. Men det går alltså inte att loopa ut en collection baklänges utan göra om den till en array?

Medlem sedan dec. 200012 464 inlägg
#8
For i = Files.count -1 step -1
     response.write files(i)
Next
Medlem sedan maj 2001797 inlägg
#9

Grymt, tackar! :bire

255 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)