hämta nästa fil från fso, visa aktuell.

ASP

3 svar · 382 visningar · startad av Brimba

Medlem sedan dec. 19995 874 inlägg
Trådstart#1

Hej!

Jag har ett antal bilder i en katalog.
Jag vill där visa den första bilden (ordningen spelar ingen roll, bara den tar samma ordning varje gång).
Och sedan ha en "next"-knapp och en "previous"-knapp.

Jag tänkte då loopa igenom hela fso:n och visa den första, ha den andra som "next" och den föregående som "previous" (såvida inte den första ligger som 0:a för då blir det den sista).

Så vill jag göra.
Men alltså vill jag slänga in alla filer i en array antar jag. Finns det något käckt kommando för det, eller måste man loopa och skapa en egen array, som man sedan själv får gå igenom, steg för steg?

Medlem sedan feb. 200112 078 inlägg
#2

Hrmm.. spännande. ;)

Medlem sedan dec. 2000557 inlägg
#3

Jag har också försökt med det där, jag löste det så här ungefär..:

<%
   
Dim strPhysicalPath, strThePath
   strPhysicalPath = Server.MapPath("gfx\thumb\comp_image1.gif")
   strThePath = "gfx/thumb/"
   
   Dim objFSO, objFile, objFileItem, objFolder, objFolderContents
         Set objFSO = CreateObject("Scripting.FileSystemObject")
         Set objFile = objFSO.GetFile(strPhysicalPath)
         Set objFolder = objFile.ParentFolder
         Set objFolderContents = objFolder.Files
			
   Dim intFiles
         intFiles = objFolder.Files.Count

   Dim i, arrFile(33) '--## Ange hur många bilder det finns i mappen
         For Each objFileItem in objFolderContents
            i = i +1
   
               arrFile(i) = objFileItem.Name

         Next
         Response.Write "<img src="& strThePath & arrFile(trim(Request.Querystring("next"))) &">"
         Response.Write "<br><br>"
   
   Dim PrevPic, NextPic
         PrevPic = Cint(trim(Request.Querystring("next")) - 1)
         NextPic = Cint(1 + trim(Request.Querystring("next")))
   
         If PrevPic > 0 Then
               Response.Write "<a href=default.asp?next="& PrevPic &">« Före</a> &#0124; "
         Else
               Response.Write "« Före &#0124; "
         End If
   
         If NextPic < Cint(intFiles + 1) Then
               Response.Write "<a href=default.asp?next="& NextPic &">Nästa »</a>"
         Else
               Response.Write "Nästa »"
         End If
   
%>

Det jag inte lyckats lösa är hur jag ska slippa räkna filerna i mappen innan jag kör scriptet, jag måste knappra in antalet själv för att det skall fungera.
Annars fungerar det bra ;)

Medlem sedan mars 20002 836 inlägg
#4

Du kan ju bara sätta variabeln arrFile utan att ange hur många index i arrayen det ska finnas och sedan redimma den med antal filer i mappen

Dim intFiles
intFiles = objFolder.Files.Count
Dim i, arrFile '--## Ange hur många bilder det finns i mappen
ReDim arrFile(intFiles)

For Each objFileItem in objFolderContents

cya,
PatrikB

263 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)