Avatar billede Jman Praktikant
09. december 2004 - 14:23 Der er 5 kommentarer og
1 løsning

FSO: en svær én

Er der nogen, der kan lave mig en kode med FileSystemObject, udfra følgende vilkår:

- Jeg kigger ned i www.domæne.dk/billedarkiv/
- Her er der et ukendt antal mapper
- I hver af disse mapper er der images + undermappen "thumbnails"
- Fra min forside vil jeg hente 4 vilkårlige thumbnails (men de må ikke være de samme)
- Man skal kunne klikke på disse 4 thumbnails og komme direkte til en asp-side, der lister den mappe thumbnailen er taget fra (selv siden og linket til denne skal jeg nok klare)

Jeg synes den er meget svær - derfor 200p.
Avatar billede netro Nybegynder
09. december 2004 - 17:27 #1
Umiddelbart ville jeg nok lave en funktion, der først dykker ned i alle hovedmapper og dernæst ned i alle undermapper. Her kan vi opsamle stien til hver enkelt thumb i en variabel separeret af et komma fx. Herefter kan vi lave et array ud af denne liste.
Slutteligt må vi have en løkke, der genererer et tilfældigt tal mellem 0 og antal elementer i arrayet. For at sikre at billedet ikke er udskrevet før, er det nødvendigt at samle de valgte indeksnumre i en ny variabel, så vi ved hver ny generering kan tjekke, om tallet indgår i den nye liste.

Jeg ved ikke, om jeg får tid til at lave det, men her er om ikke andet en lille idé, hvis du selv eller andre vil prøve lykken.
Avatar billede Jman Praktikant
09. december 2004 - 17:37 #2
Det lyder som en god idé.. men jeg er ikke så god til det med arrays o.s.v. så jeg vil da vægne mig med tålmodighed og håb om at du måske kan finde tiden..
Avatar billede netro Nybegynder
10. december 2004 - 17:01 #3
Så fandt jeg lidt tid til at se på det. Prøv følgende:


<%
Dim FSO, Folder, SubFolder, ThumbFolder, File, ThumbList, ArrThumbs
Dim ThumbCount, SelectedThumbs, ThumbsShowed, Element, Completed
Const MainFolder = "d:\ftp\morten\opfinderen\billedarkiv\"

ThumbList = ""
SelectedThumbs = ","
ThumbsShowed = 0
Completed = False

' Løb alle thumbnailsmapperne i gennem og dan en liste
' med de relative stier til alle thumbnails adskilt af spørgsmålstegn
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder(MainFolder)
For Each SubFolder In Folder.SubFolders
  Set ThumbFolder = FSO.GetFolder(MainFolder & SubFolder.Name & "\thumbnails\")
  For Each File In ThumbFolder.Files
      ThumbList = ThumbList & "?" & (SubFolder.Name & "\thumbnails\" & File.Name)
  Next
Next
Set Folder = Nothing
Set FSO = Nothing

' Lav et array ud af denne liste
ArrThumbs = Split(ThumbList, "?")

' Antal thumbnails i alt
ThumbCount = UBound(ArrThumbs) - 1

' Start løkke, hvor de fire thumbnails vælges
While Not Completed
  ' Generér et tilfældigt tal mellem 1 og antallet af thumbnails
  Randomize
  Element = Int(RND * ThumbCount) + 1
  ' Udskriv thumbnailen, hvis den ikke findes på listen over valgte thumbnails
  If InStr(SelectedThumbs, ("," & Element & ",")) = 0 Then
      ' Tilføj thumbnailen til listen og udskriv den
      SelectedThumbs = SelectedThumbs & (Element & ",")
      Response.Write "[img src=""billedarkiv/" & ArrThumbs(Element) & """]<br>"
      ' Læg 1 til antallet af udskrevede thumbnails
      ThumbsShowed = ThumbsShowed + 1
      ' Hvis fire thumbnails er udskrevet, skal løkken stoppes
      If ThumbsShowed = 4 Then Completed = True
  End If
Wend
%>
Avatar billede netro Nybegynder
10. december 2004 - 17:04 #4
- Du skal lige huske at rette MainFolder til din egen sti.
- Filen skal ligge i samme mappe som "billedarkiv". Hvis ikke, skal du rette i 8. sidste linie.
- Når du har teste det, udskifter du [ og ] med < og > i samme linie.

Bemærk også, at hvis der er under fire forskellige billeder, vil du starte en uendelig løkke.
Avatar billede Jman Praktikant
11. december 2004 - 08:04 #5
Hvor ER det bare godt lavet :o)
Tusind tak for denne kodestump !!!

- s.u.  c",)
Avatar billede netro Nybegynder
11. december 2004 - 14:11 #6
Godt du kunne bruge det :)
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