webForumDet fria alternativet

Array bakvänt?

8 svar · 344 visningar · startad av KoTTeN

KoTTeNMedlem sedan sep. 20011 540 inlägg
#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

MogMedlem sedan nov. 2003255 inlägg
#2

Ej testat, kan funka.

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

Med en for-loop:

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

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

web00132Medlem sedan maj 2001822 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?

@ndersMedlem sedan juni 200026 914 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
web00132Medlem sedan maj 2001822 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?

LarsGMedlem sedan dec. 200012 465 inlägg
#8
For i = Files.count -1 step -1
     response.write files(i)
Next
web00132Medlem sedan maj 2001822 inlägg
#9

Grymt, tackar! :bire

Genererad på 384 ms · cache AV · v20260730165559-full.f96bc7eb