Avatar billede ossian Nybegynder
14. oktober 2004 - 19:59 Der er 10 kommentarer og
1 løsning

Hjælp til Loop

Hej Folkens,

Jeg sidder og nørkler med et "image extraction" system...

Altså, lad os antage at en bruger ønsker at trække alle billeder fra et givent fotogalleri ud..

Eksempel:
Billederne har en sti der hedder:
http://www.eksperten.dk/billeder/imagenumber 01 til 15 . jpg

Så jeg har lavet en form med følgende felter:
- Url: http://www.eksperten.dk/billeder/imagenumber
- Range_from: 01
- Range_to: 15
- Extension: .jpg

Og her er koden der tager imod min form..

<%
url             = request("url")
range_from        = request("range_from")
range_to         = request("range_to")
extension         = request("extension")

counter = range_from
for counter = range_from to range_to
%>
<img src="<%=url%><%=counter%><%=extension%>"><br><br>
<% next %>

Dog er mit problem at når billedernes range starter med 01 bliver de udskrevet som 1 - altså http://www.eksperten.dk/billeder/imagenumber01.jpg bliver udskrevet som
http://www.eksperten.dk/billeder/imagenumber1.jpg

Hvordan sikrer jeg at 0'et bliver i den streng der bliver udskrevet??

På forhånd tak :-)
Avatar billede michaelfp Nybegynder
14. oktober 2004 - 20:14 #1
Ved at lave din counter om til en string!

For counter = range_from to range_to
  CounterStr = Trim(Str(Counter))
  If Len(CounterStr) < 2 Then
    CounterStr = "0" & CounterStr
  End if
  <img src="<%=url%><%=counterStr%><%=extension%>"><br><br>
Avatar billede ossian Nybegynder
14. oktober 2004 - 20:29 #2
Jeg får nu:
Type mismatch: 'Str'

/be/default.asp, line 75
Avatar billede ossian Nybegynder
14. oktober 2004 - 20:31 #3
Det er denne linie:

CounterStr = Trim(Str(Counter))

Og tak for din hjælp i øvrigt!!!
Avatar billede ossian Nybegynder
14. oktober 2004 - 20:34 #4
Jeg kom til at tænke på at der muligvis er en hage ved din løsning.. Hvis nu billedet starter med 001 eller 0001.. hvad gør man så? :-)
Avatar billede michaelfp Nybegynder
14. oktober 2004 - 20:45 #5
Prøv
CounterStr = Ltrim(CStr(counter))

Jeg forstår ike hvad du mener? I spørgsmålet skrev du at billederne hed 01 til 15 - prøv at give nogle eksempler på 001 eller 0001
Avatar billede ossian Nybegynder
14. oktober 2004 - 20:59 #6
Fedt..!! Det virkede..

Med 001 mente jeg at billederne til tider kan hedde imagenumber001.jpg.. i dit eksempel ser det ud til at der tages udgangspunkt i at billedet kun har 2 cifre.. kan man lave et eksempel hvor koden vil passe til op til eks 5 cifre.. eks 00001.jpg..

Tak for hjælpen!
Avatar billede michaelfp Nybegynder
14. oktober 2004 - 21:09 #7
Du er nødsaget til at vide nummereringen, hvis du vil styre visningen i dit loop!
Enten hedder billederne imagenumber1 til 15 eller også hedder de imagenumber001 til imagenumber015.
Med fem cifre vil du skulle skrive:
For counter = range_from to range_to
  CounterStr = LTrim(CStr(Counter))
  If Len(CounterStr) < 5 Then
    Do while Len(CounterStr) < 5
      CounterStr = "0" & CounterStr
    Loop
  End if
  <img src="<%=url%><%=counterStr%><%=extension%>"><br><br>
Avatar billede ossian Nybegynder
14. oktober 2004 - 21:17 #8
Ok.. men kan man ikke lave en længere if sætning der tager udgangspunkt i at alt ml. et og 5 cifre er muligt??
Avatar billede michaelfp Nybegynder
14. oktober 2004 - 21:23 #9
Mener du at koden skal tage højdre for, at billederne kan hedde 1-15 og/eller 00001 til 00015?
Avatar billede ossian Nybegynder
14. oktober 2004 - 21:35 #10
jeps :) Lige præcis..
Avatar billede michaelfp Nybegynder
14. oktober 2004 - 21:46 #11
Det mener jeg ikke er muligt, og hvis det er, skal du lave en masse errorhandling fordi du i så fald er nødsaget til at prøve at vise et billede som ikke findes!
Jeg ville i stedet for lave noget kode, som sikre at billederne altid hedder 00001 - 00015 - d.v.s din kode bestemmer det navn de gemmes under. Til dette kan du også bruge ovennævnte eksempel.
Held og lykke.. :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester