Hejsan!
jag har sökt på WF och hittat ett par trådar om detta men inte hittat någon kod som sett ut att passa mig riktigt..
Jag hämtar en massa bilder från en mapp och vill lägga alla bilder i olika arrayer för att kunna visa dem en och en och kunna bläddra fram och tillbaka bland dem.
Hoppas ni förstör vad jag menar..
Vill alltså ha
Array(0) = Första bilden
Array(1) = Andra bilden
o.s.v.
Hur kan en sådan kodsnutt se ut?
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set folder = fso.getFolder(Server.MapPath("bilder/"))
Sådär hämtar jag bilderna i alla fall :)
<%
Set fso = Server.CreateObject("Scripting.FileSystemObject")
If NOT fso.FolderExists(server.mappath("bilder/")) Then
Response.Write "Det finns ingen mapp!"
Else
Set folder = fso.getFolder(Server.MapPath("bilder/"))
set files = folder.files
nummer = -1
Dim myArray
for each Item in files
nummer = nummer+1
myArray(nummer) = Item.name
Next
end if
Hur rätt ute är jag?
Jag får felmess:
Type mismatch
på rad:
myArray(nummer) = Item.name
@ndersMedlem sedan juni 200032 969 inlägg MyArray är ingen array, utan en vanlig variabel. Släng på en Redim Preserve MyArray(nummer) innan du försöker lägga något i den. Du kan också vara tvungen att lägga på (0) vid dim också.
Redim Preserve MyArray(nummer) = Item.name
Felmess
Redim MyArray(nummer)=Item.name
---------------------^
@ndersMedlem sedan juni 200032 969 inlägg Hmm, varför skrev du så?
nummer = nummer+1
Redim preserve myArray(nummer)
myArray(nummer) = Item.name
Förlåt, visste inte hur de skulle vara..
Type mismatch
de felet får ja nu, på raden
Redim preserve myArray(nummer)
@ndersMedlem sedan juni 200032 969 inlägg Har du lagt på (0) vid dim så variabeln är en array redan från början?
dim myArray(0)
Hur ser hela koden ut?
Hade det förut och fick felmess:
This array is fixed or temporarily locked
:)
<%
Set fso = Server.CreateObject("Scripting.FileSystemObject")
If NOT fso.FolderExists(server.mappath("bilder/")) Then
Response.Write "Det finns ingen mapp!"
Else
Set folder = fso.getFolder(Server.MapPath("bilder/"))
set files = folder.files
Dim myArray(0), nummer
nummer = -1
for each Item in files
nummer = nummer+1
Redim preserve myArray(nummer)
myArray(nummer) = Item.name
Next
end if
%>
colioneMedlem sedan juni 20014 421 inlägg Set fso = Server.CreateObject("Scripting.FileSystemObject")
If NOT fso.FolderExists(server.mappath("bilder/")) Then
Response.Write "Det finns ingen mapp!"
Else
Set folder = fso.getFolder(server.mappath("bilder/"))
set files = folder.files
myArray=Array()
nummer = -1
for each Item in files
nummer = nummer+1
Redim preserve myArray(nummer)
myArray(nummer) = Item.name
Next
end if
@ndersMedlem sedan juni 200032 969 inlägg Prova detta då:
Dim myArray(0), nummer
Redim preserve myArray(files.count-1)
nummer = -1
for each Item in files
nummer = nummer+1
myArray(nummer) = Item.name
Next
men tänka sig, de fungerade =)
Nu är nästa steg att kunna bläddra mellan bilderna =)
De ska jag nog kunna fixa själv..
TACK ALLA!!!
Nu är de här nästan klart =)
Det jag vill ha reda på hur man ser hur många arrayer det finns.
Har läst om det men kommer inte ihåg hur det var..
:D
http://www.r60design.com/photo/bilder.asp
sådär är resultatet..
@ndersMedlem sedan juni 200032 969 inlägg Du har väl bara en array?
Hur stor den är kan du få reda på med ubound(arraynamn). Du får då dess största index, så ska du visa antal så får du lägga på 1 (eftersom arrayer är nollbaserade.)
Det har du rätt i =)
max = ubound(myArray)
Lägger den i en variabel...
Sen kollar jag
<% if bild = max then %>
Men det blir ändå fel..
Kolla på sidan och gå fram så långt som möjligt..
Men självklart måste man sätta cint()
Gjorde de =)
Puss!
Nu känner jag mig väldigt jobbig men jag behöver hjälp med en sak.
På sidan ser ni hur det ser ut.
Det jag undra är hur jag ska göra för att skriva ut all bilder i mappen och länka dem med samma bildnummer, alltså samma querystring genereras i arrayen.
Finns det någon metod för att få fram vilket nummer en bild har?
Hoppas ni förstår...
De löste sig de där också :D
Här kommer hela min kod!
<%
Set fso = Server.CreateObject("Scripting.FileSystemObject")
If NOT fso.FolderExists(server.mappath("bilder/")) Then
Response.Write "Det finns ingen mapp!"
Else
Set folder = fso.getFolder(server.mappath("bilder/"))
set files = folder.files
set files2 = folder.files
nummer = -1
myArray=Array()
for each Item in files
nummer = nummer+1
Redim preserve myArray(nummer)
myArray(nummer) = Item.name
Next
end if
max = ubound(myArray)
if request.QueryString("bild") = "" then
bild = "0"
else
bild = request.QueryString("bild")
end if
%>
<div align="center">
<table width="100%" border="0" cellspacing="0" cellpadding="10">
<tr>
<td width="46%"><img src="bilder/<%=myArray(bild)%>" width="384" height="316" border="0"></td>
<td width="54%">
<table width="100%" border="0" cellspacing="0" cellpadding="10">
<tr>
<td bgcolor="#CCCCCC">Föregående bild</td>
</tr>
<tr>
<td> <% if bild = "0" then%>
Ingen
<% else %>
<a href="bilder.asp?bild=<%=bild-1%>"><img src="bilder/<%=myArray(bild-1)%>" width="193" height="113" border="0"></a>
<% end if %></td>
</tr>
<tr>
<td bgcolor="#CCCCCC">Nästa bild</td>
</tr>
<tr>
<td><% if cInt(bild) = cInt(max) then %>
Ingen
<% else %>
<a href="bilder.asp?bild=<%=bild+1%>"><img src="bilder/<%=myArray(bild+1)%>" width="193" height="113" border="0"></a>
<% end if %></td>
</tr>
</table>
</td>
</tr>
</table>
<%
nummer2 = -1
for each Item in files
nummer2 = nummer2+1
%>
<a href="bilder.asp?bild=<%=nummer2%>"><img src="bilder/<%=Item.name%>" width="384" height="316" border="0"></a><br>
<% next %>
</div>
Tack för all er hjälp :D