09. november 2007 - 15:36Der er
13 kommentarer og 1 løsning
Uger i år + Array
Hej,
Jeg har et array bestående af uge1,uge5,uge7,uge10
Jeg vil løbe alle 52 uger på et år igennem hvis min uge1 findes skal den skrive hey din uge findes, og findes den ikke skal den sige din uge findes ikke.
Det er så tæt på weekend at jeg ikke lige selv kan gennemskue det ;-)
Det forstår jeg ikke. Har du kun de 4 uger i dit array, som du skriver øverst? Men du vil løbe 52 uger igennem? Og eftersom der findes 52 uger, så er det vel ikke aktuelt at udskrive "Ugen findes ikke", eller hvordan? Jeg tror, jeg misforstår helt.. =)
Indeholder dit array "uge1","uge5"(...) eller bare "1","5"(...)?
Dette kunne muligvis gøre det: ---------------------------------------------------------------- arrWeeks=Array(1,5,7,10)
For i=1 To 52 Found=false For j=LBound(arrWeeks) To UBound(arrWeeks) If arrWeeks(j)=i Then Found=true Next If Found=true Then Response.Write i&" er ledig<br>"&vbCrLf Next
Hmmm hvis jeg så har 10.000 legepladser, som alle indeholder et array med 1 til 52 uger, så bliver det script noget længe om at udføre..
Havde tænkt på noget i den her stil
arrFreeWeeks = split(rs("freeWeeks"),",")
for i = 1 to 52 if arrFreeWeeks(i) = true then response.write "ledig" else response.write "ikke ledig" end if next
Men ovestÅende virker ikke da jeg får en subscription out of range (når den finder en uge som ikke findes) men hvis man så kunne "catche" den error og så udskrive den som ikke ledig. Dette ville optimere scriptet en del!
Den får subscript out of range, når du kun har 4 poster i arrayet, og den kører videre til post 5, som jo ikke findes. I øvrigt starter arrays på post 0, det har vi ikke lige taget højde for. Men vi kan gøre det på en anden måde. Prøv at lade være med at lave det til et array: ---------------------------------------- arrFreeWeeks=rs("freeWeeks") for i=1 to 52 if InStr(arrFreeWeeks,"uge"&i)>0 then response.write "Uge "&i&" er ikke ledig.<br>" else response.write "Uge "&i&" er ikke ledig.<br>" end if next ----------------------------------------- Du vil dog spare noget loadtid, hvis du ikke bruger response.write så ofte, men i stedet benytter en string, som du udskriver til sidst: ----------------------------------------- arrFreeWeeks=rs("freeWeeks") sWrite=empty
for i=1 to 52 if InStr(arrFreeWeeks,"uge"&i)>0 then sWrite=sWrite&"Uge "&i&" er ikke ledig.<br>" else sWrite=sWrite&"Uge "&i&" er ledig.<br>" end if next
For at undgå, at "uge1" også finder "uge11","uge12",osv. skal det nok snarere være: ------------------------------- arrFreeWeeks=rs("freeWeeks")&","
for i=1 to 52 if InStr(arrFreeWeeks,"uge"&i&",")>0 then sWrite=sWrite&"Uge "&i&" er ikke ledig.<br>" else sWrite=sWrite&"Uge "&i&" er ledig.<br>" end if next
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.