webForumDet fria alternativet

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

ASP

3 svar · 370 visningar · startad av Brimba

Medlem sedan dec. 19995 874 inlägg
Frågan#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?

------------------
Mvh
Patrik aka Brimba

Medlem sedan feb. 200112 078 inlägg
#2

Hrmm.. spännande. ;)

------------------
Har du prövat vår nya miljövänliga soppåse i jaktarm?

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 ;)

------------------
//Palle
www.palleman.nu

[Redigerat av Palleman den 28 jan 2002]

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

------------------
-=* IF there is a wrong way to do something, then someone will do it *=-

257 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)