webForumDet fria alternativet

FSO - Array

16 svar · 777 visningar · startad av webbSAJTEN

webbSAJTENMedlem sedan jan. 2002992 inlägg
#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 :)

webbSAJTENMedlem 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

@ndersMedlem sedan juni 200032 969 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å.

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

Felmess

Redim MyArray(nummer)=Item.name
---------------------^
@ndersMedlem sedan juni 200032 969 inlägg
#5

Hmm, varför skrev du så?

	nummer = nummer+1
	Redim preserve myArray(nummer)
	myArray(nummer) = Item.name
webbSAJTENMedlem 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)
@ndersMedlem sedan juni 200032 969 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?

webbSAJTENMedlem 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

%>
colioneMedlem 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
@ndersMedlem sedan juni 200032 969 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
webbSAJTENMedlem 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!!!

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

@ndersMedlem sedan juni 200032 969 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.)

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

webbSAJTENMedlem sedan jan. 2002992 inlägg
#15

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

Puss!

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

webbSAJTENMedlem 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

137 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)