webForumDet fria alternativet

Räkna bilder i en mapp

ASP

8 svar · 185 visningar · startad av Rossifumi

Medlem sedan okt. 20001 558 inlägg
Frågan#1

Hejsan!

Jag använder följande kod för att visa alla bilder i en mapp:

dim objFSO,objFolder,objFile

set objFSO=Server.CreateObject("Scripting.FileSystemObject")

set objFolder=objFSO.GetFolder(server.mappath("images/dogs/photos"))

for each objFile in objFolder.Files

if instr(objFile.Name,"" & Request.QueryString ("dog") & "")>0 then response.write "<IMG SRC=""images/dogs/photos/" & objFile.Name & """><br><br>"

next

set objFile=Nothing
set objFolder=Nothing
set objFSO=Nothing

Men som alla kan se så visar den ju alla bilder med 2st br efter. Nu vill jag istället (ifall det går) att den delar upp bilderna, så att det det blir visa bild1, bild2, bild3 ifall ni fattar vad jag menar.

Alltså under bild1 skall det stå visa bild2, bild3 osv. där antalet är lika med de antal bilder som "passar" enl ovanstående kod?

Är detta möjligt?

------------------
"I have to return some video tapes" - Patrick Bateman, American Psycho

Medlem sedan mars 20002 836 inlägg
#2
for each objFile in objFolder.Files

if instr(objFile.Name,"" & Request.QueryString ("dog") & "")>0 then
I = I + 1
response.write "<A HREF=""images/dogs/photos/" & objFile.Name & """>Bild " & I & "</a><br><br>"

next

borde funka ... OBS!! ej testad ...

------------------
Private Function OutPut(ByRef sString)
OutPut = "Who gives ..." & sString
End Function

[Redigerat av PatrikB den 30 jan 2001]

Medlem sedan okt. 20001 558 inlägg
#3

Funkar till 99% :) Tack Patrik

Hur gör jag för att visa bilden samtidigt?

dim objFSO,objFolder,objFile

set objFSO=Server.CreateObject("Scripting.FileSystemObject")

set objFolder=objFSO.GetFolder(server.mappath("images/dogs/photos"))

for each objFile in objFolder.Files

if instr(objFile.Name,"" & Request.QueryString ("dog") & "")>0 then
I = I + 1
response.write "<A HREF=""images/dogs/photos/" & objFile.Name & """>Bild " & I & "</a> &#0124; "
End If

next

set objFile=Nothing
set objFolder=Nothing
set objFSO=Nothing

Den skall alltså börja med att visa bild1, och sedan visa den antalet bilder där under, ngn som fattar?

------------------
"I have to return some video tapes" - Patrick Bateman, American Psycho

[Redigerat av Rossifumi den 30 jan 2001]

Medlem sedan juni 2000144 inlägg
#4

Hmm, inte helt säker på vad du menar.
Om jag fattat allt rätt vill du lista alla bilder i e katalog beroende på vad querystringen "dog" innehåller. Sedan om man klickar på en bild ska den visas och resterande bilder listas som länkar eller?

dim intImageNr
dim objFSO,objFolder,objFile

intImageNr = CInt(request.querystring("Image"))

set objFSO=Server.CreateObject("Scripting.FileSystemObject")

set objFolder=objFSO.GetFolder(server.mappath("images/dogs/photos"))

for each objFile in objFolder.Files

if instr(objFile.Name,"" & Request.QueryString ("dog") & "")>0 then
I = I + 1
If I = intImageNr Then
	response.write "<img src=""images/dogs/photos/" & objFile.Name & """> "
Else
	response.write "<A HREF=""images.asp?Image="& I &""">Bild " & I & "</a> &#0124; "
End If

next

set objFile=Nothing
set objFolder=Nothing
set objFSO=Nothing

Eller om du bara vill visa första bilden och sedan bara länka till resterande bilder kan du testa dennna kod istället:

dim objFSO,objFolder,objFile

set objFSO=Server.CreateObject("Scripting.FileSystemObject")

set objFolder=objFSO.GetFolder(server.mappath("images/dogs/photos"))

for each objFile in objFolder.Files

if instr(objFile.Name,"" & Request.QueryString ("dog") & "")>0 then
I = I + 1
If I = 1 Then
	response.write "<img src=""images/dogs/photos/" & objFile.Name & """> "
Else
	response.write "<A HREF=""images/dogs/photos/" & objFile.Name & """>Bild " & I & "</a> &#0124; "
End If

next

set objFile=Nothing
set objFolder=Nothing
set objFSO=Nothing

------------------
/JE

Medlem sedan mars 20002 836 inlägg
#5

Testa detta:

dim objFSO,objFolder,objFile
Dim intImageID
Dim strScriptName
Dim strDog

'## -- vilken hund ska visas --
strDog = Request.QueryString("dog")

'## -- vilken sida är vi på --
strScriptName = Request.ServerVariables("SCRIPT_NAME")

'## -- vilken bild ska visas, första bild default --
intImageID = Request.QueryString("img")
If intImageID = "" Then intImageID = 1

set objFSO=Server.CreateObject("Scripting.FileSystemObject")

set objFolder=objFSO.GetFolder(server.mappath("images/dogs/photos"))

for each objFile in objFolder.Files

if instr(objFile.Name,"" & Request.QueryString ("dog") & "")>0 then
I = I + 1
If CInt(I) = CInt(intImageID) Then
Response.Write "<IMG src=""images/dogs/photos/" & objFile.Name & """><br>"
Else
response.write "<A HREF=""" & strScriptName & "&dog=" & strDog & "img=" & I & """>Bild " & I & "</a> &#0124; "
End If	'## -- slut av bild koll --
End If

next

set objFile=Nothing
set objFolder=Nothing
set objFSO=Nothing

..... och inte testad denna gång heller .... =O

cya,

------------------
Private Function OutPut(ByRef sString)
OutPut = "Who gives ..." & sString
End Function

[Redigerat av PatrikB den 30 jan 2001]

Medlem sedan okt. 20001 558 inlägg
#6

Tyvärr JE, ditt sätt funkar inte riktigt så som jag ville ha det :)

PatrikB >> Med risk för att förklaras idiot. Hur gör jag så att bildnamnen alltid hamnar ovanför (eller under) bilden? Nu så är det så att den visar (lätt förkortat):

<a href="bild1"><br>
<img src="bild2"><br>
<a href="bild3"><a href="bild4">

Allt funkar på den första bilden, men ifall jag klickar på bild2 så visar den länken till bild1 ovanför bilden och sedan dom andra under osv.

Det vore underbart ifall du kunde hjälpa mig igen :)

dim objFSO,objFolder,objFile
Dim intImageID
Dim strScriptName
Dim strDog
'## -- vilken hund ska visas --
strDog = Request.QueryString("dog")

'## -- vilken sida är vi på --
strScriptName = "photos.asp"

'## -- vilken bild ska visas, första bild default --
intImageID = Request.QueryString("img")
If intImageID = "" Then intImageID = 1

set objFSO=Server.CreateObject("Scripting.FileSystemObject")

set objFolder=objFSO.GetFolder(server.mappath("images/dogs/photos"))

for each objFile in objFolder.Files

if instr(objFile.Name,"" & Request.QueryString ("dog") & "")>0 then
I = I + 1
If CInt(I) = CInt(intImageID) Then
Response.Write "<IMG src=""images/dogs/photos/" & objFile.Name & """><br>"
Else
response.write "<A HREF=""" & strScriptName & "?dog=" & strDog & "&img=" & I & """>Bild " & I & "</a> &#0124; "
End If '## -- slut av bild koll --
End If

next

set objFile=Nothing
set objFolder=Nothing
set objFSO=Nothing

------------------
"I have to return some video tapes" - Patrick Bateman, American Psycho

Medlem sedan mars 20002 836 inlägg
#7

Testa denna:

<%
dim objFSO,objFolder,objFile
Dim intImageID, , I, N
Dim strScriptName
Dim strDog
'## -- vilken hund ska visas --
strDog = Request.QueryString("dog")
'## -- vilken sida är vi på --
strScriptName = Request.ServerVariables("SCRIPT_NAME")

'## -- vilken bild ska visas, första bild default --
intImageID = Request.QueryString("img")
If intImageID = "" Then intImageID = 1

set objFSO=Server.CreateObject("Scripting.FileSystemObject")

set objFolder=objFSO.GetFolder(server.mappath("images/dogs/photos/"))

'## -- loopa igenom objFolder.Files att få bilden --
for each objFile in objFolder.Files
	if instr(objFile.Name,"" & Request.QueryString ("dog") & "") > 0 then
	N = N + 1
		If CInt(N) = CInt(intImageID) Then
		response.write "<IMG src=""images/dogs/photos/" & objFile.Name & """><BR>"
		End If '## -- slut av bild koll --
	End If
Next

'## -- loopa igenom en ggn till för att få länk till resterande bilder --
for each objFile in objFolder.Files
	if instr(objFile.Name,"" & Request.QueryString ("dog") & "") > 0 then
		I = I + 1
		If CInt(I) <> CInt(intImageID) Then
		response.write "<A HREF=""" & strScriptName & "?dog=" & strDog & "&img=" & I & """>Bild " & I & "</a> &#0124; "
		End If
		
	End If

next

set objFile=Nothing
set objFolder=Nothing
set objFSO=Nothing
%>

Testad och klar ..... kanske ngn sökväg som vart fel, men e ju bara för dig att ändra,

cya

------------------
Private Function OutPut(ByRef sString)
OutPut = "Who gives ..." & sString
End Function

[Redigerat av PatrikB den 31 jan 2001]

Medlem sedan okt. 20001 558 inlägg
#8

Du är en klippa :) Allt funkar perfekt...

Man bockar och bugar

------------------
"I have to return some video tapes" - Patrick Bateman, American Psycho

Medlem sedan mars 20002 836 inlägg
#9

varsågod

------------------
Private Function OutPut(ByRef sString)
OutPut = "Who gives ..." & sString
End Function

264 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)