/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Galleri: problem med fejl i asp
Fra : Dennis Møller


Dato : 01-04-04 21:31

Hej!

Jeg har været så heldig at finde noget allerede skrevet asp kode,
der henter alle filer frem fra en angivet mappe og viser dem.
Jeg har så valgt at bruge det til at vise billeder fra
forskellige arrangementer (i forskellige mapper) på samme side,
så jeg gentager koden for hvert arrangements galleri.
Mine problemer kommer dog i at den skriver følgende fejl:
"Microsoft VBScript runtime error '800a0009'
Subscript out of range: '11'

/default.asp, line 315"

(se her: http://www.musix.dk/?page=billeder )

Der ER kun 10 billeder (og intet andet, hverken andre filer eller
mapper eller noget som helst) i den mappe. Alligevel prøver den
at vise et 11. billede.
Ved galleriet før er der kun ét billede, men også her forsøger
den at vise endnu et.
Ved det første galleri er der kun ét billede og her vises der
også kun ét billede - jeg forstår ikke!

Det er som om den tager værdierne med i det senere gallerier (og
der derfor ikke sker fejl ved det første) - men hvordan undgår
jeg det? Jeg ved godt det er et monster projekt - men jeg har
ingen anelse om hvordan man får den til at bruge alle filer
fundet i en angivet mappe og der findes ikke noget, der er
skræddersyet til det jeg gerne vil have. Den skal garanteret
tilpasses meget mere endnu, men her er den kode, der bliver brugt
på ovenstående link:

<% Tbilleder = 1 %>
<p class="navigation">Navigation &nbsp; - [ &nbsp;
<%
DO UNTIL Tbilleder = 6 OR rs3a.EOF %><a href="#ID-<%
=rs3a("ID") %>" class="navigation"><% =rs3a("titel") %></a>
&nbsp; <%
rs3a.MoveNext
Tbilleder = Tbilleder + 1
LOOP %>]</p>
<center>
<table border="0" cellpadding="0" cellspacing="0"
width="600"><%
IF (Request.Querystring("vis") = "alle") THEN
Tbilleder = 10
ELSE
Tbilleder = 1
END IF

DO UNTIL Tbilleder = 6 OR rs3b.EOF %>
<div align="center">
<table border="0" cellpadding="0" cellspacing="0"
width="600">
<tr>
<td class="tvramme" valign="top"><a
name="ID-<% =rs3b("ID") %>"></a></td>
<td class="tramme"></td>
</tr>
<tr>
<td class="vramme" rowspan="3"></td>
<td class="ramme" height="30" valign="top">
<p class="umargin"><b><% =rs3b("titel")
%></b>&nbsp; - [ <% =FormatDateTime(rs3b("dato"), vbLongDate) %>
]</p>
</td>
</tr>
<tr>
<td class="ramme"><%
dim image_directory, image_directory_short, Images_pr_Page,
Images_Horizontal
image_directory = "gfx/" & rs3b("mappe")
image_directory_short = rs3b("mappe")
Images_pr_Page = "9999"
Images_Horizontal = "3"

dim count_image, image, Image_Array
Set
directory=server.createobject("scripting.filesystemobject")
Set
allfiles=directory.getfolder(server.mappath(image_directory))

For each image in allfiles.files
Image_Array = Image_Array + image.Name & ","

count_image = count_image +1
Next

dim Current_Page, Total_Pages, Total_Images, Page_Name

Page_Name = request.servervariables("script_name")
Total_Images = count_image

Current_Page = request.querystring("paging")
If Current_Page = "" or Current_Page = "0" then
Current_Page = "1"
end if

Total_Pages = (Total_Images/Images_pr_Page)

if Total_Pages > int(Total_Pages) then
Total_Pages = int(Total_Pages) + 1
end if

Image_Array = split(Image_Array,",")

dim First_Image, Last_Image
First_Image = ((Current_Page-1)*(Images_pr_Page))+1
If First_Image = "0" then
First_Image = "1"
end if
Last_Image = (Total_Images-First_Image)

if cint(Last_Image) > cint(Images_pr_Page) then
Last_Image = round(First_Image-1) + round(Images_pr_Page)
else
Last_Image = (First_Image + Last_Image)
End if

response.write "<table style=""width:500;"">" & vbCrLf

dim Count_Image_Prints, td_width
Count_Image_Prints = 0

td_width = int(100 / Images_Horizontal)

dim I
For I = (First_Image-1) to (Last_Image-1)
Count_Image_Prints = Count_Image_Prints + 1

If int(Count_Image_Prints) = int("1") then
response.write "<tr>" & vbCrLf
end if

response.write "<td width=""33%"" align=""center"">" &_
"<a href=""?page=billeder&visstor="&
image_directory_short &"-stor/"& Image_Array(I) &""">" &_
"<img src="""& image_directory &"/"& Image_Array(I)
&""">" &_
"</a>" &_
"</td>" & vbCrLf

If int(Count_Image_Prints) = int(Images_Horizontal)
then
response.write "</tr>" & vbCrLf
Count_Image_Prints = 0
end if
Next

response.write "</tr>" & vbCrLf &_
"</table>" & vbCrLf %>
<p class="navigation" align="right">[ <a
href="#" class="navigation">top</a> ]</p>
</td>
</tr>
<tr>
<td height="30"></td>
</tr><%
rs3b.MoveNext
Tbilleder = Tbilleder + 1
Image_Array = ""

LOOP %>


Plz hjælp ! :D - hilsen Dennis.

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Jens B (01-04-2004)
Kommentar
Fra : Jens B


Dato : 01-04-04 23:48


"Dennis Møller" <djm@dennermanner.dk> skrev i en meddelelse
news:c4hu5i$m33$1@sunsite.dk...
> Der ER kun 10 billeder (og intet andet, hverken andre filer eller
> mapper eller noget som helst) i den mappe. Alligevel prøver den
> at vise et 11. billede.

Jeg ved godt at du udtrykkeligt skriver at der kun er de 10 billeder og
intet andet. Men for en sikkerhedsskyld spørger jeg lige alligevel, er du
sikker? Har du husket at få vist skjulte filer, så der ikke ligger en fil du
ikke kan se? Hvis man f.eks. i Windows XP har haft filerne liggende i en
mappe, hvor man får vist ikonerne som thumbnails, så bliver der nemlig
oprettet en skjult fil der hedder thumbs, så det kunne jo være at der lå
sådan en sammen med dine filer.

Jens



Jens Gyldenkærne Cla~ (02-04-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 02-04-04 13:10

Dennis Møller skrev:

> Mine problemer kommer dog i at den skriver følgende fejl:
> "Microsoft VBScript runtime error '800a0009'
> Subscript out of range: '11'
>
> /default.asp, line 315"


Hvordan ser linje 315 ud? (jeg gider ikke selv tælle mig frem til
den).

Prøv at se artiklen her <http://asp-faq.dk/article/?id=41>


Jeg kan ikke overskue et asp-script på over 100 linjer i et
usenetindlæg - men jeg kan hjælpe dig videre hvis du finder ud af
hvilken del af koden der fejler og viser hvordan den (del af
koden) ser ud.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Dennis Møller (03-04-2004)
Kommentar
Fra : Dennis Møller


Dato : 03-04-04 15:32

Jens GyldenkærneClausen wrote in
dk.edb.internet.webdesign.serverside.asp:
> Hvordan ser linje 315 ud? (jeg gider ikke selv tælle mig frem til
> den).

Undskyld, min fejl! Det var også min mening at skrive linjerne
omkring linje 315, men jeg har åbenbart glemt det :P


For I = (First_Image-1) to (Last_Image-1)
Count_Image_Prints = Count_Image_Prints + 1

If int(Count_Image_Prints) = int("1") then
response.write "<tr>" & vbCrLf
end if

response.write "<td width=""33%"" align=""center"">" &_
<-- linje 315
"<a href=""?page=billeder&visstor="&
image_directory_short &"-stor/"& Image_Array(I) &""">" &_
"<img src="""& image_directory &"/"& Image_Array(I)
&""">" &_
"</a>" &_
"</td>" & vbCrLf

If int(Count_Image_Prints) = int(Images_Horizontal) then
response.write "</tr>" & vbCrLf
Count_Image_Prints = 0
end if
Next

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (04-04-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 04-04-04 17:58

Dennis Møller skrev:

> For I = (First_Image-1) to (Last_Image-1)

Prøv at skrive Last_Image - 2 til sidst.

Hvis problemet skyldes at du looper en gang for meget, skulle det
løse problemet. Bagefter kan du evt. undersøge hvorfor du skal
bruge "Last_Image - 2" - tjek hvordan du findes Last_Image.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Dennis Møller (06-04-2004)
Kommentar
Fra : Dennis Møller


Dato : 06-04-04 13:47

Jens GyldenkærneClausen wrote in
dk.edb.internet.webdesign.serverside.asp:
> Dennis Møller skrev:
>
> > For I = (First_Image-1) to (Last_Image-1)
>
> Prøv at skrive Last_Image - 2 til sidst.

Det hjalp ikke, eftersom den jo ikke generelt viser et billede for
meget. Det bevirker bare at den i det første galleri, hvor der kun
er ét billede, slet ingen viser og at den i det andet galleri viser
det korrekt, men i det tredje galleri viser ét for meget og først i
fjerde viser en fejl.

Men jeg har selv fundet ud af det. Jeg havde på fornemmelsen, som
jeg også har skrevet, at det var fordi den jo i løkken tog
oplysninger med fra forrige gang, den gik løkken igennem, så jeg
skulle jo have smidt nogle af de informationer ud først. Det var
selvfølgelig:
count_image
der bare lagde 1 til hver gang der var et nyt billede, så hvis det
første galleri havde fem billeder og det andet galleri havde tre,
jamen så lagde den tre til de fem og sagde at det første galleri
rigtig nok havde fem billeder, men at det andet galleri havde otte.
Jeg satte så simpelthen bare count_image = 0 inden den løber løkken
igennem igen.

Ellers tak for hjælpen ! - Dennis.

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (06-04-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 06-04-04 14:09

Dennis Møller skrev:

> Men jeg har selv fundet ud af det. Jeg havde på fornemmelsen,
> som jeg også har skrevet, at det var fordi den jo i løkken tog
> oplysninger med fra forrige gang, den gik løkken igennem, så
> jeg skulle jo have smidt nogle af de informationer ud først.
> Det var selvfølgelig:
> count_image

O.k. - godt fundet.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408942
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste