Det ser ut som att du angett fel array.
choice = int((ubound([b]allpicturesarray[/b])-i)*rnd())
Mvh,
16 svar · 285 visningar · startad av Steveking
Tjena.
Jag har en katalog med bilder.
4st *.jpg
Jag vill slumpa fram dom med detta script. Vet inte vad jag har gjort för fel. Men är ganska ny på arrays.
dim allpictures()
allpicturesarray = array("1.jpg", "2.jpg", "3.jpg", "4.jpg")
dim choosen(2)
dim i,pictures,choice
randomize
for i = 0 to 2
[b]choice = int((ubound(allpictures)-i)*rnd())[/b]
choosen(i) = allpictures(choice)
allpictures(choice) = allpictures(ubound(allpictures)-i)
next
Sen försöker jag visa bilderna med detta
<% =allpicturesarray(0) %>
samt
<% =allpicturesarray(1) %>
Får felet
Microsoft VBScript runtime error '800a0009'
Subscript out of range: 'ubound'
index.asp, line 190
Line 190 är fetmarkerad.
Det ser ut som att du angett fel array.
choice = int((ubound([b]allpicturesarray[/b])-i)*rnd())
Mvh,
Du använder fel namn, allpictures istället för allpicturesarray
for i = 0 to 2
choice = int((ubound(allpicturesarray)-i)*rnd())
choosen(i) = allpicturesarray(choice)
allpicturesarray(choice) = allpicturesarray(ubound(allpicturesarray)-i)
next
Jag hade visst missat allihopa. Va ju lite klantigt.
Måste den alltid heta array på slutet?
försökte med allpictures = array("1.jpg", "2.jpg", "3.jpg", "4.jpg")
men fick jag type missmatch
Den får heta precis vad du vill.
Hur ser din kod ut nu, och vilken rad pekar felmeddelandet på?
Mvh,
Detta fungerar
<%
dim allpictures()
allpicturesarray = array("1.jpg", "2.jpg", "3.jpg", "4.jpg")
dim choosen(2)
dim i,pictures,choice
randomize
for i = 0 to 2
choice = int((ubound(allpicturesarray)-i)*rnd())
choosen(i) = allpicturesarray(choice)
allpicturesarray(choice) = allpicturesarray(ubound(allpicturesarray)-i)
next
%>
men detta blir type missmatch
<%
dim allpictures()
[b]allpictures = array[/b]("1.jpg", "2.jpg", "3.jpg", "4.jpg")
dim choosen(2)
dim i,pictures,choice
randomize
for i = 0 to 2
choice = int((ubound(allpicturesarray)-i)*rnd())
choosen(i) = allpicturesarray(choice)
allpicturesarray(choice) = allpicturesarray(ubound(allpicturesarray)-i)
next
%>
Blandas den ihop med dim?
Om du tar bort () efter din dim av arrayen?
Ja, det är inte helt omöjligt att den gör det. Du får ju själv kontrollera att det inte sker.
Mvh,
<% =allpicturesarray(0) %>
samt
<% =allpicturesarray(1) %>
då verkar det ju iofs som jag pekar på vilken bild som skall visas
Hur borde jag visa bilderna?
Du borde använda choosen när du visar bilderna. Vad är det för mening med att slumpa ut 3 av 4 bilder?
Ska du inte använda arrayen choosen till det?
Om du vill visa alla bilderna i choosen
for i = 0 to ubound(choosen)
response.write choosen(i) & "<br>"
next
Jag löste det såhär istället. Tycker det verkar enklare.
randomize
bild1 = Int(Rnd * 3) +1
bild2 = Int(Rnd * 3) +1
DO UNTIL NOT cint(bild2) = cint(bild1)
bild2 = Int(Rnd * 3) +1
LOOP