09. december 2004 - 14:23Der 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)
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.
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..
' 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 %>
- 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.
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.