timediaMedlem sedan maj 2001420 inlägg Vad gör jag fel idag? Får Unexpected 'Next' som felmeddelande.
foname = request.querystring("obj")
Set FSO2 = Server.CreateObject("Scripting.FileSystemObject")
Set Folder2 = FSO2.GetFolder(server.mappath("bild/"&foname&""))
set Files = Folder2.Files
For each Item In Files
if left(Item.Name,3) = "th_" then
Response.Write "<table>" & vbCrLf
Response.Write "<tr>" & vbCrLf
Do
If x mod 3=0 and x>1 Then Response.Write "</tr><tr>" & vbCrLf
Response.Write "<td>" & vbCrLf
response.write item.name &"<br>"
strFileName = item.name
response.write "<img src ='bild/"& foname &"/"& strFileName &"'>"
Response.Write "</td>" & vbCrLf
x=x+1
Loop Until files.EOF
Next
LarsGMedlem sedan dec. 200012 464 inlägg Det finns ingen end if för
if left(iItem.Name,3) = "th_" then
@ndersMedlem sedan juni 200032 969 inlägg Du har gjort något konstigt. do hör ihop med until, men jag förstår inte alls varför du har en do-loop där?
Börja med att ta bort do- och loop-raderna.
Om du indenterar koden ordentligt är det lättare att se vad som är konstigt.
timediaMedlem sedan maj 2001420 inlägg Nu säger den:
Microsoft VBScript runtime error '800a01b6'
Object doesn't support this property or method: 'EOF'
/husshow.asp, line 122
Följande kod funkar, men jag vill göra så att den skriver en tabellrad med 3 bilder - så en ny rad med 3 o.s.v.
foname = request.querystring("obj")
Set FSO2 = Server.CreateObject("Scripting.FileSystemObject")
Set Folder2 = FSO2.GetFolder(server.mappath("bild/"&foname&""))
set Files = Folder2.Files
For each Item In Files
if left(Item.Name,3) = "th_" then
response.write item.name &"<br>"
Dim strFileName
strFileName = item.name
response.write "<img src ='bild/"& foname &"/"& strFileName &"'><br>"
end if
Next
@ndersMedlem sedan juni 200032 969 inlägg EOF använder du när du leker med recordsets, jag förstår inte varför du har med det i den här koden?
jonnyzMedlem sedan okt. 2004502 inlägg Kanske finns snyggare sätt att lösa det på. Känner mig rätt slut i huvudet, men detta bör fungera:
counter=0
For each Item In Files
If left(Item.Name,3) = "th_" then
counter=counter+1
response.write item.name &"<br>"
Dim strFileName
strFileName = item.name
response.write "<img src =""bild/" & foname & "/" & strFileName &""">"
if counter=3 then
counter=0
response.write "<br>"
end if
end if
Next
Alltså, du räknar hur mycket du skrivit ut och när du kommer till tre byter du rad och börjar om igen.
timediaMedlem sedan maj 2001420 inlägg Tack för snabb hjälp! Följande funkar:
foname = request.querystring("obj")
Set FSO2 = Server.CreateObject("Scripting.FileSystemObject")
Set Folder2 = FSO2.GetFolder(server.mappath("bild/"&foname&""))
set Files = Folder2.Files
Response.Write "<table>" & vbCrLf
Response.Write "<tr>" & vbCrLf
For each Item In Files
if left(Item.Name,3) = "th_" then
If x mod 3=0 and x>1 Then Response.Write "</tr><tr>" & vbCrLf
Response.Write "<td>" & vbCrLf
strFileName = item.name
Response.write "<img src ='bild/"& foname &"/"& strFileName &"'></a>"
Response.Write "</td>" & vbCrLf
x=x+1
end if
Next
end if
@ndersMedlem sedan juni 200032 969 inlägg Jag rekommenderar ändå att du ser till att indentera koden ordentligt, så den går att läsa.