webForumDet fria alternativet
Logga in / Bli medlem

FSO - Array

ASP

16 svar · 779 visningar · startad av webbSAJTEN

Medlem sedan jan. 2002992 inlägg
Trådstart#1

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

Medlem sedan jan. 2002992 inlägg
#2
<%
	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

Medlem sedan juni 200032 967 inlägg
#3

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å.

Medlem sedan jan. 2002992 inlägg
#4
	Redim Preserve MyArray(nummer) = Item.name

Felmess

Redim MyArray(nummer)=Item.name
---------------------^
Medlem sedan juni 200032 967 inlägg
#5

Hmm, varför skrev du så?

	nummer = nummer+1
	Redim preserve myArray(nummer)
	myArray(nummer) = Item.name
Medlem sedan jan. 2002992 inlägg
#6

Förlåt, visste inte hur de skulle vara..

         Type mismatch

de felet får ja nu, på raden

Redim preserve myArray(nummer)
Medlem sedan juni 200032 967 inlägg
#7

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?

Medlem sedan jan. 2002992 inlägg
#8

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

%>
Medlem sedan juni 20014 421 inlägg
#9
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
Medlem sedan juni 200032 967 inlägg
#10

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
Medlem sedan jan. 2002992 inlägg
#11

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!!!

Medlem sedan jan. 2002992 inlägg
#12

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..

Medlem sedan juni 200032 967 inlägg
#13

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

Medlem sedan jan. 2002992 inlägg
#14

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..

Medlem sedan jan. 2002992 inlägg
#15

Men självklart måste man sätta cint()
Gjorde de =)

Puss!

Medlem sedan jan. 2002992 inlägg
#16

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...

Medlem sedan jan. 2002992 inlägg
#17

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&ouml;reg&aring;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&auml;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

266 ms totalt · 4 externa anrop · v20260731065814-full.50d4b5bd
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)