13. oktober 2022 - 09:21Der er
3 kommentarer og 2 løsninger
Loop fra 1 til 100, spring visse tal over
Jeg har et simpel loop fra 1 til 100, som jeg godt kunne tænke mig springer en række tal over jeg kan definere med et udtræk fra en database Jeg kan bare ikke gennemskue hvordan det kan gøre?
Nuværende: post = "1" Do while post <= 100 response.write "<option value=""" & post & """>" & post & "</option>" post = post +1 loop
Forestiller mig at jeg kunne lave en "liste" med numre der skal skippes ala dette: spring = 2, 8, 60, 99
Så når mit loop køres vil min liste se sådan her ud: 1 3 4 5 6 7 9 osv...
Function InArray(Needle, Haystack) Dim i, x InArray = False
For i = 0 To Ubound(Haystack) If IsArray(Needle) = True Then For x = 0 To Ubound(Needle) If Trim(Haystack(i)) = Trim(Needle(x)) Then InArray = True Exit Function End If Next Else If Trim(Haystack(i)) = Trim(Needle) Then InArray = True Exit Function End If End If Next End Function poster = Array(convertedstring)
Som virker rigtig fint, dog har jeg et problem med den liste jeg laver, der skal kontrolleres op i mod
Den laver jeg sådan: liste = 0 Set rs = Server.CreateObject("ADODB.Recordset") strSQL = "SELECT * FROM poster " Set rs = Conn.Execute(strSQL) if rs.eof or rs.bof then else do until rs.eof or rs.bof liste = liste & "," & rs("postnr") rs.movenext loop end if rs.close Set rs = Nothing
Men værdierne bliver ignoreret, problemet er "" omkring mit , (tænker måske det er fordi listen så ikke er af numerisk værdi længere?) Laver jeg en liste manuelt som liste = "0,4,5,10" virker det helt perfekt.
' opret dictionary Set d = Server.CreateObject("Scripting.Dictionary") ' tilføj værdier (evt. fra database) d.Add 2, "Drop" d.Add 4, "Drop" ' loop og spring over dem i dictionary for i = 1 to 6 if not d.Exists(i) then ' lav noget me di end if next
' opret dictionary Set d = Server.CreateObject("Scripting.Dictionary") ' tilføj værdier (evt. fra database) Set rs = Server.CreateObject("ADODB.Recordset") strSQL = "SELECT * FROM poster " Set rs = Conn.Execute(strSQL) if rs.eof or rs.bof then else do until rs.eof or rs.bof d.Add rs("postnr").Value, "Drop" rs.movenext loop end if ' loop og spring over dem i dictionary for i = 1 to 200 if not d.Exists(i) then response.write "<option value=""" & i & """>" & i & "</option>" end if next
Bemærk at værdien "Drop" ikke bruges. Den er dert kun fordi et Dictionary skal have både en key og en value. VBS (g dermed ASP) har ikke et Set object med kun key.
Synes godt om
Ny brugerNybegynder
Din løsning...
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.